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.處理執行時...