![](/img/trans.png)
[英]Exception.getCause() returning null when trying to find the source of an exception
[英]java.lang.exception.getCause() gets null every time
在我開發的其中一個軟件中,我試圖管理異常機制。
在程序的某個地方,我做了類似的事情;
IF(my condition not allowed){
throw new Exception("My condition not allowed", null)
}
我使用 java.lang.exception 的參數拋出 null 以了解這與程序錯誤無關。 (我沒有機會創建自己的自定義異常,請考慮)
在程序上方的某個地方,我捕獲了這樣的異常;
}catch(Exception e){
if(null == e.getCause)
do.somethingThatIWantToCatch();
}else{
do.somethingProgramaticalError();
}
這里的問題是; 我的代碼可能會拋出一些我不知道的東西,比如 NullPointerException、ArrayIndexOutOfBoundsException 等......
在這一點上,我希望 e.getCause() 不應該為 null,如果我遇到編程錯誤,但是我總是得到 NULL 並執行我的 do.somethingThatIWantToCatch(); 狀態一直。
我該如何處理這種情況並執行我的 do.somethingProgramaticalError(); 健康)狀況 ???
您永遠不應該拋出Exception
的實例(或其未經檢查的子RuntimeException
)。 您應該始終找到一個合適的子類來拋出,或者如果還沒有合適的子類,則創建自己的子類。
捕獲Exception
將捕獲陽光下的所有類型的異常,包括您關心的NullPointerException
和您不關心的其他異常類型。 最好盡可能具體地說明您捕獲的異常類型,以便不會處理您不想無意中處理的其他異常。
至於getCause()
,這通常是傳遞到另一個異常的構造函數中的異常。 您遇到的絕大多數例外情況都是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.