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

Java 程式設計基礎:異常處理機制全解析

     編輯:Java 程式設計入門

前言

早期程式語言(如 C)缺乏異常處理,通常靠返回特殊值或設置旗標判斷錯誤。隨系統規模擴大,這種方式成為大型可維護系統的阻礙。因此現代語言引入異常處理機制,Java 在 C++ 基礎上建立了完善的物件導向異常體系。

Java 異常類別體系

Java 中每個異常都是物件,屬於 Throwable 或其子類實例。方法拋出異常物件時,其中包含異常資訊,呼叫端可捕捉處理。

  • Error(錯誤):java.lang.Error 及其子類,指虛擬機相關嚴重問題(系統崩潰、動態連結失敗等),無法恢復或捕捉,導致應用中斷。
  • Exception(異常):java.lang.Exception 及其子類,指可被捕捉且可能恢復的情況(陣列越界、除零、I/O 錯誤等)。

編譯器檢查:Java 強制要求捕捉或聲明所有非執行時異常(如 FileNotFoundException、IOException),因不處理可能導致嚴重後果;執行時異常(RuntimeException 子類)則不強制,因普遍且全捕捉會影響可讀性與效能。

異常處理五大關鍵字

Java 異常處理透過 try、catch、throw、throws、finally 實現。基本結構:

try {
    // 可能拋出異常的程式碼
} catch (ExceptionType1 e) {
    // 處理 ExceptionType1
} catch (ExceptionType2 e) {
    // 處理 ExceptionType2
    throw e; // 重新拋出
} finally {
    // 無論是否發生異常皆執行
}

try-catch 機制

遇到 try 陳述,異常框架置入堆疊,直到所有 try 區塊完成。若內層 try 未處理某異常,堆疊展開尋找能處理的 try。catch 子句指定欲捕捉的異常型別。

throw 與 throws

  • throw:明確拋出異常實例,如 throw new IllegalAccessException("demo");。執行後流程立即停止,後續陳述式暫緩執行。
  • throws:聲明方法可能拋出的異常型別。編譯器強制聲明受檢異常;Error、RuntimeException 及其子類除外。若要主動拋出執行時異常,亦需用 throws 聲明。

範例程式

class ThrowsDemo {
    static void procedure() throws IllegalAccessException {
        System.out.println("inside procedure");
        throw new IllegalAccessException("demo");
    }

    public static void main(String args[]) {
        try {
            procedure();
        } catch (IllegalAccessException e) {
            System.out.println("caught " + e);
        }
    }
}

執行流程:main 呼叫 procedure,後者拋出異常,main 的 catch 捕捉並處理。

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