這個問題是我面試的時候遇到的一個題目, 較真的說題目不對。應該是RuntimeException和非RuntimeException的區別。
因為Exception是RuntimeException的父類。如果是非RuntimeException,如果在定義方法的時候拋出異常,在調用該方法
的地方必須使用try{}catch{}來捕獲異常。但是對于RuntimeException來說不需要。jvm會對該異常進行處理,但是會中斷程序
運行。所以建議也對RuntimeException進行try catch。
如果是自定義異常,應該繼承Exception,因為你肯定想自己捕捉進行相應的處理,而不是交給jvm處理。
常見的RuntimeException:
NullPointerException - 空指針引用異常
ClassCastException - 類型強制轉換異常。
IllegalArgumentException - 傳遞非法參數異常。
ArithmeticException - 算術運算異常
ArrayStoreException - 向數組中存放與聲明類型不兼容對象異常
IndexOutOfBoundsException - 下標越界異常
NegativeArraySizeException - 創建一個大小為負數的數組錯誤異常
NumberFormatException - 數字格式異常
SecurityException - 安全異常
UnsupportedOperationException - 不支持的操作異常