Java異常結構分爲錯誤(Error)和異常(Exception)線程
一、Error是程序沒法處理的錯誤,好比OutOfMemoryError、ThreadDeath等。這些異常發生時, Java虛擬機(JVM)通常會選擇線程終止。blog
二、Exception是程序自己能夠處理的異常,這種異常分兩大類運行時異常和非運行時異常。 程序中應當儘量去處理這些異常。虛擬機
- 運行時異常都是RuntimeException類及其子類異常,如NullPointerException、IndexOutOfBoundsException等, 這些異常是不檢查異常(unchecked Exception),程序中能夠選擇捕獲處理,也能夠不處理。這些異常通常是由程序邏輯錯誤引發的, 程序應該從邏輯角度儘量避免這類異常的發生。
- 非運行時異常是RuntimeException之外的異常,是受檢查異常(checked Exception)。是必須進行處理的異常,若是不處理,程序就不能編譯經過。 如IOException、SQLException等以及用戶自定義的Exception異常,通常狀況下不自定義檢查異常。