1. 程式人生 > 其它 >Error與Exception的異同

Error與Exception的異同

Error(錯誤)和Exception(異常)都是 java.lang.Throwable 類的子類,在Java程式碼中只有繼承了 Throwable 類的例項才能被 throw 或者 catch。
Exception 和 Error 體現了 Java 平臺設計者對不同異常情況的分類,Exception 是程式正常執行過程中可以預料到的意外情況,並且應該被開發者捕獲,進行相應的處理。Error 是指正常情況下不大可能出現的情況,絕大部分的 Error 都會導致程式處於非正常、不可恢復狀態。所以不需要被開發者捕獲。
Error 錯誤是任何處理技術都無法恢復的情況,肯定會導致程式非正常終止。並且 Error 錯誤屬於未檢查型別,大多數發生在執行時。Exception 又分為可檢查(checked)異常和不檢查(unchecked)異常,可檢查異常在原始碼裡必須顯示的進行捕獲處理,這裡是編譯期檢查的一部分。不檢查異常就是所謂的執行時異常,通常是可以編碼避免的邏輯錯誤,具體根據需要來判斷是否需要捕獲,並不會在編譯器強制要求。

如下是常見的

Error 和 Exception:

1)執行時異常(RuntimeException):

NullPropagation:空指標異常;

ClassCastException:型別強制轉換異常

IllegalArgumentException:傳遞非法引數異常

IndexOutOfBoundsException:下標越界異常

NumberFormatException:數字格式異常
2)非執行時異常:

ClassNotFoundException:找不到指定 class 的異常

IOException:IO 操作異常


3)錯誤(Error):

NoClassDefFoundError:找不到 class 定義異常

StackOverflowError:深遞迴導致棧被耗盡而丟擲的異常

OutOfMemoryError:記憶體溢位異常

歡迎大家批評指正,指出問題,謝謝!