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

Java 異常處理體系深度解析(上):分類體系、內置異常與捕獲機制

     編輯:Java 綜合教學

Java 異常處理體系深度解析(上):分類體系、內置異常與捕獲機制

異常是程序運行過程中發生的錯誤事件,Java 提供完善的異常處理機制。本文系統梳理異常分類、繼承體系、常用內置異常、核心方法及捕獲語法。

異常三大分類

類型特點典型例子
檢查性異常編譯期強制處理,程序員無法預見FileNotFoundException、IOException
運行時異常編譯期可忽略,程序員邏輯錯誤可避免NullPointerException、ArrayIndexOutOfBoundsException
錯誤JVM 層級嚴重問題,程序無法恢復OutOfMemoryError、StackOverflowError

異常繼承體系

Java異常繼承體系圖:Throwable為根,分Error和Exception兩大分支
Throwable 為根類,Error 表示系統錯誤,Exception 分檢查性與運行時異常

常用內置異常速查

運行時異常 (java.lang) :

常見運行時異常列表 更多運行時異常

檢查性異常 (java.lang) :

常見檢查性異常列表

Throwable 核心方法

Throwable主要方法:getMessage、printStackTrace、getCause等

異常捕獲語法詳解

基本 try-catch 結構

try {
    // 保護代碼:可能拋出異常的業務邏輯
} catch (ExceptionName e) {
    // 異常處理代碼
}

實例:數組越界捕獲

public class Test {
    public static void main(String[] args) {
        try {
            int a[] = new int[2];
            System.out.println("Access element three: " + a[3]);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Exception thrown: " + e);
        }
        System.out.println("Out of the block");
    }
}
運行結果:Exception thrown: java.lang.ArrayIndexOutOfBoundsException: 3

多重捕獲塊 (多 catch)

try {
    file = new FileInputStream(fileName);
    x = (byte) file.read();
} catch (IOException i) {
    i.printStackTrace(); return -1;
} catch (FileNotFoundException f) {
    f.printStackTrace(); return -1;
}

關鍵規則:子類異常必須寫在父類前面,否則父類捕獲會屏蔽子類處理邏輯。

異常處理流程總結

  1. 拋出:運行時系統生成異常對象封裝錯誤信息
  2. 捕獲:運行時系統尋找匹配的 catch 塊處理
  3. 傳遞:若當前方法無匹配 catch,異常向調用棧上層傳遞
  4. 終止:若無任何處理者,線程終止並打印堆棧跟蹤

下篇將深入講解 finally 塊、throw/throws 關鍵字、自定義異常及最佳實踐原則。

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