1. 程式人生 > >為什麼有的異常不需要try-catch

為什麼有的異常不需要try-catch

校驗引數不合法的時候,想使用異常來中斷程式碼執行,並捕捉異常資訊,於是

extends RuntimeException

自定義了異常類,使用時候

throw new ParaException(key + "不能為空");

並且在方法宣告的時候throws了異常,但是發現呼叫這個方法的時候,idea不提示使用try-catch或者throws處理,所以沒辦法獲取異常資訊,疑惑。。。其實是因為,java中的異常分為執行型異常編譯型異常;執行型異常出現的時候,直接從堆疊中push執行程式碼,code的時候不需要處理;編譯型異常code的時候需要try-catch或者throws

處理,出現的時候會中斷try程式碼塊的執行,轉向catch程式碼塊,或者中斷當前方法的執行;自定義異常類時,如果 extends RuntimeException,就是執行型異常;需要獲取異常資訊時,需要自定義編譯型異常:

extends Exception

執行型異常可以通過控制業務邏輯、校驗必要變數引數健壯程式碼來避免。