国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

html文檔類型有哪些 做程序時,如果某個查詢方法應(yīng)當(dāng)返回一條記錄,但是查出來多條,是拋異常好還是從多條中取第一條好?

做程序時,如果某個查詢方法應(yīng)當(dāng)返回一條記錄,但是查出來多條,是拋異常好還是從多條中取第一條好?我有10年的開發(fā)和培訓(xùn)經(jīng)驗。在此期間,我經(jīng)歷了Java、web、Android、H5、大數(shù)據(jù)、PHP等不同

做程序時,如果某個查詢方法應(yīng)當(dāng)返回一條記錄,但是查出來多條,是拋異常好還是從多條中取第一條好?

我有10年的開發(fā)和培訓(xùn)經(jīng)驗。在此期間,我經(jīng)歷了Java、web、Android、H5、大數(shù)據(jù)、PHP等不同的發(fā)展方向。我也是軟件培訓(xùn)公司的金牌講師。我對回答這個問題很感興趣。

您已經(jīng)清楚地解釋了這個問題中的要求,“一個查詢方法應(yīng)該返回一條記錄,但是可以找到多條記錄”!也就是說,您的查詢應(yīng)該只有一個結(jié)果,但此時或某個時候,會有多個結(jié)果,這意味著您的業(yè)務(wù)接口可能不滿足冪等性的要求。根據(jù)冪等設(shè)計原理,無論怎樣查找,只要參數(shù)相同,返回的結(jié)果應(yīng)該是相同的。

那么如何解決這個問題并拋出異常呢?返回到幾個中的第一個?

我認(rèn)為這不是一個完美的解決方案。

這對某些人來說是一個解決方案,但是問題解決了嗎?一點也不!問題仍然存在。下次觸發(fā)此條件時,仍將引發(fā)異常。就像說森林里有一只老虎。有一天,它吃人,然后你不解決老虎的問題。你只是在森林里掛了一塊牌子,上面寫著:小心,里面有老虎!這…

事實上,這不是一個好辦法。也許只有一件東西應(yīng)該被退回。為什么要查詢多個項目?您是否檢查了數(shù)據(jù)庫中數(shù)據(jù)的唯一性?你不覺得每次查詢多個結(jié)果然后得到第一個數(shù)據(jù)效率很低嗎?

所以我們應(yīng)該從根本上解決問題!為什么會產(chǎn)生多個數(shù)據(jù)?如果要手動檢查數(shù)據(jù),則需要手動檢查。如果要鎖定它,應(yīng)該盡最大努力確保輸入?yún)?shù)相同,結(jié)果相同

在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?

事實上,這種方法在很多框架中都有使用

1。Rethrow

自定義異常,用于更好地隔離異常,識別異常類型、ID、自定義消息和日志

2。對第三方庫的異常進(jìn)行打包和抽象,以保持與框架異常定義的一致性,方便框架處理不同的異常

3。Restful API,統(tǒng)一的異常管理

隨著業(yè)界對用戶體驗的重視,前端異常處理也得到了重視。像過去一樣,很少有網(wǎng)站關(guān)心你的前端是否會異常,但是現(xiàn)在更大的網(wǎng)站會收集前端異常,然后向服務(wù)器報告。

。讓我們逐一看看。

1. 異常捕獲

每個主流開發(fā)語言都使用try。。。抓住。。。捕捉異常。當(dāng)然,前端JavaScript也不例外。最簡單的代碼如下:

try{…}catch(E){控制臺.log(e)

]盡管我們可以嘗試。。。抓住。。。對于異常的處理,也存在一個問題:代碼會變得越來越復(fù)雜和臃腫,這種方法只適用于片段代碼的異常捕獲,全局異常捕獲非常麻煩。

所以有更好的方法。

window.oner錯誤它不僅提供了錯誤代碼的行號,還提供了錯誤借用信息,對我們準(zhǔn)確定位異常非常有幫助。

2. 異常報告

當(dāng)我們捕獲前端異常時,我們需要將異常報告給后端服務(wù)器。我們通常通過Ajax提交。為了降低后端壓力,我們建議如果前端異常類似,只報告一次。

經(jīng)過以上處理,當(dāng)當(dāng)前端出現(xiàn)異常時,我們可以實時通知程序員進(jìn)行檢查和修復(fù)。