從網上查的資料進行整理
一、異常
1、所有的異常類是從 java.lang.Exception 類繼承的子類。Exception 類是 Throwable 類的子類。
2、所有的非檢查性異常都繼承自java.lang.RuntimeException。
3、所有的檢查性異常都繼承自java.lang.Exception,是RuntimeException以外的異常;
二、區別:
1、檢查性異常:編譯器要檢查這類異常,檢查的目的一方面是因為該類異常的發生難以避免,另一方面就是讓開發者去解決掉這類異常,所以稱為必須處理(try ...catch)的異常。
如果不處理這類異常,集成開發環境中的編譯器一般會給出錯誤提示。
如果一個方法沒有捕獲一個檢查性異常,那么該方法必須使用 throws 關鍵字來聲明。throws 關鍵字放在方法簽名的尾部。
2、非檢查性異常:編譯器不會檢查這類異常,不檢查的則開發者在代碼的編輯編譯階段就不是必須處理,這類異常一般可以避免,因此無需處理(try ...catch)。
如果不處理這類異常,集成開發環境中的編譯器也不會給出錯誤提示。
三、舉例
1、常見的運行時異常:空指針異常(NullPointerException)、除零異常(ArithmeticException)、數組越界異常(ArrayIndexOutOfBoundsException)等;
2、常見的檢查性異常:輸入輸出異常(IOException)、文件不存在異常(FileNotFoundException)、SQL語句異常(SQLException)等。