首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 異常體系速覽:Error、Exception、RuntimeException 與編譯時異常

     編輯:Java 綜合教學

頂層結構

Throwable
 ├── Error          // 嚴重錯誤,程式無法恢復 (OOM, StackOverflow)
 └── Exception      // 可處理的異常情況
      ├── RuntimeException      // 運行時異常 (非受檢)
      │     ├── NullPointerException
      │     ├── IndexOutOfBoundsException
      │     └── IllegalArgumentException ...
      └── 編譯時異常 (Checked Exception) // 受檢異常
            ├── IOException
            ├── SQLException
            ├── ClassNotFoundException
            └── InterruptedException ...

處理規則對比

異常類型是否必須聲明 throws是否必須捕獲處理典型場景
Error否否 (通常不捕獲)JVM 層面嚴重故障
RuntimeException否 (可選)否 (可選)邏輯錯誤、空指針、越界
編譯時異常是是I/O、資料庫、反射、網絡

最佳實踐

  1. 可恢復的業務異常 → 自定義 Checked Exception,強制調用者處理。
  2. 編程錯誤 → 拋 RuntimeException (如 IllegalArgumentException),讓其冒泡到全局異常處理器。
  3. 不要捕獲 Error,除非極少數需優雅關閉資源的場景。
  4. try-with-resources (JDK 7+) 自動關閉實現 AutoCloseable 的資源,簡化編譯時異常處理。

口訣

Error 不管,Runtime 隨緣,Checked 必須管——聲明或捕獲,二選一。

掌握異常分類與處理義務,是寫出健壯 Java 代碼的基本功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved