java異常Exception和常見的RunTimeException
所有的異常都是由Throwable繼承而來,在下一層被分解為兩個分支:Error 和 Exception。
Error 類層次結構描述了 Java 運作時系統的内部錯誤和資源耗盡錯誤。 應用程式不應該 抛出這種類型的對象。 如果出現了這樣的内部錯誤, 除了通告給使用者,并盡力使程式安全地 終止之外, 再也無能為力了。這種情況很少出現。
在設計java程式時,需要關注的是Exception層的異常資訊:
這個層次結構又劃分為兩個分支:RunTimeException 和 Exception:
1、由程式錯誤導緻的異常屬于 RuntimeException,也就是運作時異常 ,這種異常又稱為不受檢異常,編譯器并不會報錯,當發生此類異常時會直接交由虛拟機接管。
派生于 RuntimeException 的常見異常包含下面幾種情況:
NullPointerException - 空指針引用異常
ClassCastException - 類型強制轉換異常。
IndexOutOfBoundsException - 下标越界異常
FileNotFoundException - 檔案未找到異常
ArithmeticException - 算術運算異常
IllegalArgumentException - 傳遞非法參數異常。
NegativeArraySizeException - 建立一個大小為負數的數組錯誤異常
NumberFormatException - 數字格式異常
SecurityException - 安全異常
UnsupportedOperationException - 不支援的操作異常
“如果出現RuntimeException異常,那一定就是你的問題”,這句話還是有一定道理的
2、其他異常,也稱為受檢異常,會在編譯時就曝出錯誤,需要自己去捕獲并處理
不是派生于RuntimeException 的異常包括:
試圖在檔案尾部後面讀取資料。
試圖打開一個不存在的檔案。
試圖根據給定的字元串查找 Class 對象, 而這個字元串表示的類并不存在