1. 程式人生 > >關於執行時異常(Runtime Exception)和受檢查的異常(Checked Exception)以及系統異常和普通異常的一些總結

關於執行時異常(Runtime Exception)和受檢查的異常(Checked Exception)以及系統異常和普通異常的一些總結

Exception 表示程式還能夠克服和恢復的問題,Exception 類又分為執行時異常(Runtime Exception)和受檢查的異常(Checked Exception),所謂執行時異常就是開發人員編寫程式碼時不會報紅,但是執行不得當的話會執行出錯,也被稱作不受檢查異常(Unchecked Exception),最常見的就是空指標異常(NullPointerException),想必大家都遇見過,先總結一下這些執行時異常。
**1)java.lang.NullPointerException 空指標異常;出現原因:呼叫了未經初始化的物件或者是不存在的物件。
2)java.lang.ClassNotFoundException 指定的類找不到;出現原因:類的名稱和路徑載入錯誤;通常都是程式試圖通過字串來載入某個類時可能引發的異常。
3)java.lang.NumberFormatException 字串轉換為數字異常;出現原因:字元型資料中包含非數字型。
4)java.lang.IndexOutOfBoundsException 陣列角標越界異常,常見於運算元組物件時發生。**
5)java.lang.IllegalArgumentException 方法傳遞引數錯誤。
6)java.lang.ClassCastException 資料型別轉換異常。
7)java.lang.NoClassDefFoundException 未找到類定義錯誤。
8)SQLException SQL 異常,常見於操作資料庫時的 SQL 語句錯誤。
9)java.lang.InstantiationException 例項化異常。
10)java.lang.NoSuchMethodException 方法不存在異常。
這些執行時異常可以通過try catch的方式去解決。關於try catch的使用就不多加贅述了,大家可以自行百度。
再來說說受檢查異常(Checked Exception),顧名思義這就是在日常程式設計中會產生編譯錯誤報紅可以直接交給java提示去解決的異常,通過提示可自行加try catch解決。

其中有的資料顯示是Exception分為系統異常和普通異常。我所理解的系統異常和普通異常的是以使用者的角度來敘述的,系統異常指的是使用者遇到沒有被開發人員解決的執行時異常,這種情況下,程式不能再執行下去,簡單理解就是所謂的bug,而普通異常是使用者本身的一些錯誤導致的異常,是執行環境的變化或異常所導致的問題,是使用者能夠克服的問題,例如,網路斷線,硬碟空間不夠,發生這樣的異常後,程式不應該死掉,執行不應該停止。
java 為系統異常和普通異常提供了不同的解決方案,編譯器強制普通異常必須 try..catch 處理或用 throws 宣告繼續拋給上層呼叫方法處理,所以普通異常也稱為 checked 異常,而系統異常可以處理也可以不處理,所以,編譯器不強制用 try..catch 處理或用 throws 宣告,所以系統異常也稱為 unchecked 異常。

文章某些內容是由查詢《JAVA面試技巧》得出,小白見解,有說的不對的往大牛指正。