jni內(nèi)存泄露 在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?
在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?事實上,這種方法在很多框架中都有使用1。Rethrow自定義異常,用于更好地隔離異常,識別異常類型、ID、自定義消息和日志2。對第三方庫的異常進
在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?
事實上,這種方法在很多框架中都有使用
1。Rethrow
自定義異常,用于更好地隔離異常,識別異常類型、ID、自定義消息和日志
2。對第三方庫的異常進行打包和抽象,以保持與框架異常定義的一致性,方便框架處理不同的異常
3。Restful API,統(tǒng)一異常管理
拋出異常不是由方法本身處理的。調(diào)用方法時需要處理此異常。捕捉異常就是通過方法本身處理異常。
1. 拋出異常就是在方法中聲明該方法可能的異常狀態(tài)。通過使用throws關鍵字,我們可以發(fā)現(xiàn)異常將在一個已知的方法中生成,或者不是完全確定的,但是可能會生成。我們可以嘗試捕獲可以生成異常的代碼。
2. 假設方法a拋出一個異常void a()在聲明時拋出IOException,那么在方法B中,如果要調(diào)用a,則只能忽略2中的策略,而B將繼續(xù)拋出它,并將其保留到下一步。抓住他并處理
3。Void B()
]{
try
{
]a()//]}catch(IOException)
{
//在這里,您可以不編寫任何代碼就處理異常,但不建議這樣做。
Java中的異常的捕獲和拋出是什么意思?有什么區(qū)別?
我有10年的開發(fā)和培訓經(jīng)驗。在此期間,我經(jīng)歷了Java、web、Android、H5、大數(shù)據(jù)、PHP等不同的發(fā)展方向。我也是軟件培訓公司的金牌講師。我對回答這個問題很感興趣。
您已經(jīng)清楚地解釋了這個問題中的要求,“一個查詢方法應該返回一條記錄,但是可以找到多條記錄”!也就是說,您的查詢應該只有一個結果,但此時或某個時候,會有多個結果,這意味著您的業(yè)務接口可能不滿足冪等性的要求。根據(jù)冪等設計原理,無論怎樣查找,只要參數(shù)相同,返回的結果應該是相同的。
那么如何解決這個問題并拋出異常呢?返回到幾個中的第一個?
我認為這不是一個完美的解決方案。
這對某些人來說是一個解決方案,但是問題解決了嗎?一點也不!問題仍然存在。下次觸發(fā)此條件時,仍將引發(fā)異常。就像說森林里有一只老虎。有一天,它吃人,然后你不解決老虎的問題。你只是在森林里掛了一塊牌子,上面寫著:小心,里面有老虎!這…
事實上,這不是一個好辦法。也許只有一件東西應該被退回。為什么要查詢多個項目?您是否檢查了數(shù)據(jù)庫中數(shù)據(jù)的唯一性?你不覺得每次查詢多個結果然后得到第一個數(shù)據(jù)效率很低嗎?
所以我們應該從根本上解決問題!為什么會產(chǎn)生多個數(shù)據(jù)?如果要手動檢查數(shù)據(jù),則需要手動檢查。如果要鎖定它,應該盡最大努力確保輸入?yún)?shù)相同,結果相同!