Java核心技術3:怎麼處理異常?

在程序的編寫和運行中,發生錯誤是不可避免的。下面將介紹怎麼處理錯誤導致的異常情況。

工具/原料

ECLIPSE

一、異常概述

在程序中,錯誤可能產生於程序員沒有預料到的各種情況,或者是因為超出了程序員控制之外的環境因素,如用戶的壞數據、試圖打開一個根本不存在的文件等。在Java中這種在程序運行時可能出現的一些錯誤稱為異常。異常是一個在程序執行期間發生的事件,它中斷了正在執行的程序的正常指令流。

Java核心技術3:怎麼處理異常

二、處理程序異常錯誤

1、錯誤

異常產生後,如果不做任何處理,程序就會被終止。例如,將一個字符串轉換為整型,可以通過Integer類的parseInt()方法來實現。但如果該字符串不是數字形式,parseInt()方法就會拋出異常,程序將停留在出現異常的位置,不再執行下面的語句。

舉例說明:

提示信息“lili年齡是”已經輸出,說明該句之前沒有錯誤

Java核心技術3:怎麼處理異常

三、捕捉異常

Java語言的異常捕獲結構由try、catch和finally 3部分組成。其中,try語句塊存放的是可能發生異常的Java語句;catch程序塊在try語句塊之後,用來激發被捕獲的異常;finally語句塊是異常處理結構的最後執行部分,無論try塊中的代碼如何退出,都將執行finally塊。

語法如下:

try{

//程序塊代碼

}

catch(Exceptiontype1 e){

//對Exceptiontype1處理

}

catch(Exceptiontype2 e){

//對Exceptiontype2處理

}

........

finally{

//程序塊

}

1、try-catch語塊

舉例說明:

從例子中可以看出,程序仍然輸出最後的提示信息。,沒有因為異常而終止。

Java核心技術3:怎麼處理異常

2、finally語句塊

完整的異常處理語句一定要包括finally語句,無論程序中有無異常發生,並且無論之間的try-catch是否順利執行完畢,都會執行finally語句。

四、java常見異常

詳見下圖:

Java核心技術3:怎麼處理異常

五、自定義異常

在程序中使用自定義異常類,大體可分為以下幾個步驟:

(1)創建自定義異常類。

(2)在方法中通過throw關鍵字拋出異常對象。

(3)如果在當前拋出異常的方法中處理異常,可以使用try-catch語句捕獲並處理,否則在方法的聲明處通過throws關鍵字指明要拋出給方法調用者的異常,繼續進行下一步操作。

(4)在出現異常方法的調用者中捕獲並處理異常。

六、在方法中拋出異常

1、使用throws聲明拋出異常

throws關鍵字通常被應用在聲明方法時,用來指定方法可能拋出的異常。多個異常可使用逗號分隔。

Java核心技術3:怎麼處理異常

2、使用throw語句拋出異常

throw關鍵字通常用於方法體中,並且拋出一個異常對象。程序在執行到throw語句時立即終止,它後面的語句都不執行。通過throw拋出異常後,如果想在上一級代碼中來捕獲並處理異常,則需要在拋出異常的方法中使用throws關鍵字在方法的聲明中指明要拋出的異常;如果要捕捉throw拋出的異常,則必須使用try-catch語句。

舉例說明:

運行結果:除數不是負數

Java核心技術3:怎麼處理異常

六、運行時異常

RuntimeException異常是程序運行過程中產生的異常。Java類庫中的每個包中都定義了異常類,所有這些類都是Throwable類的子類。Throwable類派生了兩個子類,分別是Exception和Error類。Error類及其子類用來描述Java運行系統中的內部錯誤以及資源耗盡的錯誤,這類錯誤比較嚴重。Exception類稱為非致命性類,可以通過捕捉處理使程序繼續執行。Exception類又根據錯誤發生的原因分為RuntimeException異常和RuntimeException之外的異常

JAVA異常類結構圖:

Java核心技術3:怎麼處理異常

RuntimeException異常的種類

Java核心技術3:怎麼處理異常

八、異常的使用原則

在程序中使用異常,可以捕獲程序中的錯誤,但是異常的使用也要遵循一定的規則,下面是異常類的幾項使用原則。

不要過多的使用異常,這樣會增加系統的負擔。

在方法中使用try-catch捕獲異常時,要對異常作出處理。

try-catch語句塊的範圍不要太大,這樣不利於對異常的分析。

一個方法被覆蓋時,覆蓋它的方法必須拋出相同的異常或子異常。

程序, 核心技術,
相關問題答案