這個問題是我面試的時候遇到的一個題目鬓椭, 較真的說題目不對。應(yīng)該是RuntimeException和非RuntimeException的區(qū)別关划。
因?yàn)镋xception是RuntimeException的父類。如果是非RuntimeException翘瓮,如果在定義方法的時候拋出異常贮折,在調(diào)用該方法
的地方必須使用try{}catch{}來捕獲異常。但是對于RuntimeException來說不需要资盅。jvm會對該異常進(jìn)行處理调榄,但是會中斷程序
運(yùn)行踊赠。所以建議也對RuntimeException進(jìn)行try catch。
如果是自定義異常每庆,應(yīng)該繼承Exception筐带,因?yàn)槟憧隙ㄏ胱约翰蹲竭M(jìn)行相應(yīng)的處理,而不是交給jvm處理缤灵。
常見的RuntimeException:
NullPointerException - 空指針引用異常
ClassCastException - 類型強(qiáng)制轉(zhuǎn)換異常伦籍。
IllegalArgumentException - 傳遞非法參數(shù)異常。
ArithmeticException - 算術(shù)運(yùn)算異常
ArrayStoreException - 向數(shù)組中存放與聲明類型不兼容對象異常
IndexOutOfBoundsException - 下標(biāo)越界異常
NegativeArraySizeException - 創(chuàng)建一個大小為負(fù)數(shù)的數(shù)組錯誤異常
NumberFormatException - 數(shù)字格式異常
SecurityException - 安全異常
UnsupportedOperationException - 不支持的操作異常