Java異常處理

2021-08-19 11:26:10 字數 1952 閱讀 5797

1.錯誤的分類

error:錯誤,一般指的是系統方面的異常,比如:藍屏,記憶體溢位,jvm執行環境出現了問題。

exception:是可控的異常,程式設計師可以在編寫程式是解決的錯誤。

兩者的父類為throwable

2.exception:是所有異常的父類,其下面可以派生出很多子型別。

3.異常處理機制:

在編寫程式時,某一塊**可能會出現某些異常。我們應該對這些**進行異常處理。

處理使用如下語法:

trycatch(異常型別的宣告)finally

我們將可以出現異常的**塊放入try{}中,jvm會進行檢測try{}中的**,

如果有異常,jvm就會將異常資訊封裝成相應的異常物件,然後轉移到catch(){}**塊中進行處理,執行{}中的業務邏輯。

然後會執行finally{}模組的**。如果try{}中沒有異常出現,最終也會執行finally{}中的邏輯。

4:catch**塊包含要捕獲異常型別的宣告。

可以有1個或多個,在宣告異常變數時,從上到下的catch塊使用的異常型別可以是同級別的,

如果多個異常型別有父子關係時,那麼應該先寫子異常,再寫父異常(先寫父異常時,編譯不通過)

當有多個catch時:

如果保護**中發生異常,異常被拋給第乙個 catch 塊。

如果丟擲異常的資料型別與 exceptiontype1 匹配,它在這裡就會**獲。

如果不匹配,它會被傳遞給第二個 catch 塊。

如此,直到異常**獲或者通過所有的 catch 塊。

5:finally**塊:

finally**塊是有沒有異常都會執行的(最後執行)。

通常用於關閉某些操作,刪除臨時檔案等。

當程式中有return關鍵字的時候,先執行return,再執行finally代替。

6:throw:丟擲異常物件

有時候,程式中捕獲的異常,不想在catch**塊中處理,就要往外丟擲,拋給呼叫者(誰呼叫這個方法誰就是呼叫者),由呼叫者來處理。

main中的異常最好直接處理.

7:throws:在定義方法時,必須宣告要丟擲的異常物件的型別。

throws:就是宣告通知呼叫要處理的異常型別

8:異常的分類

檢查性異常(編譯時異常)

reg:io異常

非檢查性異常(執行時異常)

reg: nullpointerexception

arrayindexoutofbound***ception

stringindexoutofbound***ception

classcastexception

numberformatexception

illegalargumentexception

不要把classnotfoundexception當成執行時異常

在throw執行時異常物件時,方法處不需要宣告throws,因為編譯器會忽略執行時異常。

當throw編譯時異常時,必須在方法處宣告throws此物件的型別。

9:當父類中的方法宣告異常時,子類重寫方法時應該注意的事項:

子類重寫父類的方法時,如果父類的方法宣告了異常,

子類方法可以不宣告

也可以按父類的方法進行宣告

也可以宣告父類方法的異常的子型別異常

不能宣告父類方法異常的父型別

父類的方法如果沒有宣告異常,子類方法不可以宣告異常

10:自定義異常.

只需要繼承exception,用系統提供的構造器

Java異常處理

package test public class testexception boolean testex throws exception catch exception e finally boolean testex1 throws exception system.out.println ...

java異常處理

在自動化指令碼編寫的過程中,task層的所有方法都要throws exception 異常處理 程式執行過程中,可能會出現異常情況,比如被0除 對負數計算平方根等,還有可能會出現致命的錯誤,比如記憶體不足,磁碟損害無法讀取檔案等,對於異常和錯誤情況的處理,統稱為異常處理。在自動化中,有可能是找不到某...

Java異常處理

注意 1.當程式可能出現多種異常,而且又要為這些異常一一處理時,後面依次列寫catch語句塊 2.但所列寫的catch應該滿足從子類到父類的異常處理,如上面,第一和二兩個異常都是exception的子類 3.finally語句跟在catch語句後面,用來實行一些出現異常後要進行的處理 4.處理執行時...