異常什么意思 做程序時,如果某個查詢方法應當返回一條記錄,但是查出來多條,是拋異常好還是從多條中取第一條好?
做程序時,如果某個查詢方法應當返回一條記錄,但是查出來多條,是拋異常好還是從多條中取第一條好?我有10年的開發(fā)和培訓經驗。在此期間,我經歷了Java、web、Android、H5、大數(shù)據、PHP等不同
做程序時,如果某個查詢方法應當返回一條記錄,但是查出來多條,是拋異常好還是從多條中取第一條好?
我有10年的開發(fā)和培訓經驗。在此期間,我經歷了Java、web、Android、H5、大數(shù)據、PHP等不同的發(fā)展方向。我也是軟件培訓公司的金牌講師。我對回答這個問題很感興趣。
您已經清楚地解釋了這個問題中的要求,“一個查詢方法應該返回一條記錄,但是可以找到多條記錄”!也就是說,您的查詢應該只有一個結果,但此時或某個時候,會有多個結果,這意味著您的業(yè)務接口可能不滿足冪等性的要求。根據冪等設計原理,無論怎樣查找,只要參數(shù)相同,返回的結果應該是相同的。
那么如何解決這個問題并拋出異常呢?返回到幾個中的第一個?
我認為這不是一個完美的解決方案。
這對某些人來說是一個解決方案,但是問題解決了嗎?一點也不!問題仍然存在。下次觸發(fā)此條件時,仍將引發(fā)異常。就像說森林里有一只老虎。有一天,它吃人,然后你不解決老虎的問題。你只是在森林里掛了一塊牌子,上面寫著:小心,里面有老虎!這…
事實上,這不是一個好辦法。也許只有一件東西應該被退回。為什么要查詢多個項目?您是否檢查了數(shù)據庫中數(shù)據的唯一性?你不覺得每次查詢多個結果然后得到第一個數(shù)據效率很低嗎?
所以我們應該從根本上解決問題!為什么會產生多個數(shù)據?如果要手動檢查數(shù)據,則需要手動檢查。如果要鎖定它,應該盡最大努力確保輸入參數(shù)相同,結果相同
java異常從業(yè)務層集中拋出,是不是每個控制層方法都要trycatch?
控制層中有兩種異常:一種是預期的,另一種是可預測的。這種異常需要捕獲并“嘗試修復”。例如,在查詢用戶信息RPC的過程中,存在異常,包括500ah和404ah。對于客戶端,基本上不需要重試,這可以通過一個明確的錯誤代碼來通知。相反,在超時的情況下,可以通知客戶端稍后再試,不同的錯誤代碼可以引導客戶端進行不同的操作。另一種情況是控制層本身不考慮。在這種情況下,盲目的嘗試/捕捉沒有多大意義。它通常在框架級進行統(tǒng)一處理,包括記錄異常信息和優(yōu)雅的返回失敗。
最后,對于try/catch的使用,我們并不意味著我們看不到異常,但我們更多地考慮捕獲后我可以做什么,以及我是否可以嘗試解決此問題。如果沒有,我們可以把它扔到上層,記錄并報警。如果我們不把這個問題想清楚,就很容易形成一個禁忌(吞下例外)。
怎樣讓自己集中注意力?
我對這個問題有很好的理解。我生大兒子的時候,我覺得他很可愛,總是喜歡和他玩。我怕他一個人呆著。結果,他現(xiàn)在很活躍,坐起來很難,而且他還在上小學,所以不注意。
老大兩歲時,我生了第二個孩子。我覺得太累了,不想再和第二個孩子玩了。有時我只是給他一個玩具。他在那兒工作了很長時間,把那個玩具扔了。結果,他的注意力現(xiàn)在很集中。他一坐下,就必須在離開桌子之前把畫畫好。
所以要從小培養(yǎng)注意力。太大的時候很難改變