首先關於異常的分類:
java 中關於異常的分類情況是:throwable 是所有異常和錯誤的基類,下面在分為Error 和 Exception:
簡單的異常體系結構如下圖所示:
其中Exception 下又分為 運行期異常 和 非運行期異常
1:關於Error與Exception
Error是程序無法處理的錯誤,比如OutOfMemoryError、ThreadDeath等。這些異常發生時,
Java虛擬機(JVM)一般會選擇線程終止。
2:運行時異常和非運行時異常
Exception 不同於Error是程序本身可以處理的異常;並且程序應該盡可能處理這些異常;
運行時異常都是RuntimeException類及其子類異常,如NullPointerException、IndexOutOfBoundsException等,
這些異常是不檢查異常,程序中可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯誤引起的,
程序應該從邏輯角度盡可能避免這類異常的發生。
非運行時異常是RuntimeException以外的異常,類型上都屬於Exception類及其子類。
從程序語法角度講是必須進行處理的異常,如果不處理,程序就不能編譯通過。
如IOException、SQLException等以及用戶自定義的Exception異常,一般情況下不自定義檢查異常。
下一章會介紹在javaweb+spring項目中如何集成處理項目中的異常: