三十一、java Exception體系結構
java 異常是程序運行過程中出現的錯誤。Java把異常當作對象來處理,並定義一個基類java.lang.Throwable作為所有異常的超類。在Java API中定義了許多異常類,分為兩大類,錯誤Error和異常Exception。其中異常類Exception又分為運行時異常(RuntimeException)和非運行時異常(非runtimeException),也稱之為不檢查異常(Unchecked Exception)和檢查異常(Checked Exception)。
1、Error與Exception
Error是程序無法處理的錯誤,比如OutOfMemoryError、ThreadDeath等。
這些異常發生時,Java虛擬機(JVM)一般會選擇線程終止。
Exception是程序本身可以處理的異常,這種異常分兩大類運行時異常和非運行時異常。程序中應當儘可能去處理這些異常。
2、運行時異常和非運行時異常
運行時異常: 都是RuntimeException類及其子類異常: IndexOutOfBoundsException 索引越界異常
ArithmeticException:數學計算異常
NullPointerException:空指針異常
ArrayOutOfBoundsException:數組索引越界異常
ClassNotFoundException:類文件未找到異常
ClassCastException:造型異常(類型轉換異常)
這些異常是不檢查異常(Unchecked Exception),程序中可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯誤引起的。
非運行時異常:是RuntimeException以外的異常,類型上都屬於Exception類及其子類。從程序語法角度講是必須進行處理的異常,如果不處理,程序就不能編譯通過。如:
IOException、文件讀寫異常
FileNotFoundException:文件未找到異常
EOFException:讀寫文件尾異常
MalformedURLException:URL格式錯誤異常
SocketException:Socket異常
SQLException:SQL資料庫異常