1. 程式人生 > >Java異常捕獲處理機制

Java異常捕獲處理機制

Java中,異常情況分為Exception(異常)和Error(錯誤)兩大類,Java異常通常是指程式執行過程中出現的非正常情況,如使用者輸入錯誤、除數為零、需要處理的檔案不存在、陣列下標越界等,對於異常情況的出現,可以採用異常處理,以保證程式可以正常的執行。

Java中定義兩種型別的異常和錯誤:

1. JVM(Java虛擬機器) 異常:由 JVM 丟擲的異常或錯誤。例如:NullPointerException 類,ArrayIndexOutOfBoundsException 類,ClassCastException 類。

2. 程式級異常:由程式或者API程式丟擲的異常。例如 IllegalArgumentException 類,IllegalStateException 類。

捕獲異常的方法

使用 try 和 catch 關鍵字可以捕獲異常,try/catch程式碼塊中的程式碼稱為保護程式碼,可以放在異常可能發生的地方,具體用法如下:

try

{

   // 程式程式碼

}catch(ExceptionName e1)

{

   //Catch 塊

}

catch 語句包含要捕獲異常型別的宣告。當保護程式碼塊中發生一個異常時,try 後面的 catch 塊就會被檢查。如果發生的異常包含在 catch 塊中,異常會被傳遞到該 catch 塊,這和傳遞一個引數到方法是一樣。也可以進行多重捕獲,具體用法是在try程式碼塊後面跟隨多個catch程式碼塊。

catch 語句往往是和finally配合使用,finally關鍵字用來建立在try程式碼塊後面執行的程式碼塊,無論是否發生異常,finally程式碼塊中的程式碼總會被執行,因此,在 finally 程式碼塊中,可以執行清理型別等收尾善後性質的語句。

宣告自定義異常

在Java中可以自定義異常,在自定義異常類時需注意以下幾點:

1. 所有異常都必須是 Throwable 的子類;

2. 自定義檢查性異常類,則需繼承 Exception 類;

3. 自定義執行時異常類,則需繼承 RuntimeException 類。

自定義的異常類和其他任何類都一樣,包含有變數和方法。其作用機制均是丟擲異常和捕捉異常,一個方法能捕捉異常,一定是Java程式碼

在某處所丟擲的異常,異常總是先被丟擲,後被捕捉的。