Java 異常機制是程式健壯性的基石。所有異常類別均繼承自 java.lang.Throwable,主要分為兩大分支:Error(錯誤) 與 Exception(異常)。
Error 表示 JVM 自身發生故障,或執行應用時出現的致命錯誤(如 OutOfMemoryError、StackOverflowError、NoClassDefFoundError)。這類錯誤通常不需要也不應由應用程式捕獲處理,屬於「非檢查異常」。
Exception 及其子類別代表程式邏輯可預見、可處理的異常情況。根據編譯器是否強制要求處理,再細分為:
RuntimeException 及其子類別、Error 及其子類別外,所有 Exception 子類別皆屬檢查異常。try-catch 捕獲,要么在方法簽名中用 throws 聲明拋出,否則編譯不通過。IOException、SQLException、ClassNotFoundException、InterruptedException。RuntimeException 及其子類別、以及 Error 及其子類別。NullPointerException、ArrayIndexOutOfBoundsException、IllegalArgumentException、ClassCastException。Exception 或 Throwable。try-with-resources(Java 7+)自動關閉實作 AutoCloseable 的資源。
