java詳解 異常處理

2021-08-14 03:28:10 字數 2171 閱讀 6511

異常處理是繼承throwable的子類,有兩種:error 和 exception.

error是系統崩潰或者資料庫崩潰,和**的編寫沒有關係.

exception是和**有關係的,是一種異常.

1.出現異常系統解決的辦法:

以main函式為例:有兩種方式

①.main函式自己解決

②.把問題拋給上級去解決(誰呼叫main函式就讓誰解決)

main函式就會拋給jvm虛擬機器處理.

jvm在控制台列印錯誤資訊 和 錯誤發生在什麼類的什麼位置.

2.自己解決的辦法:使用try…catch…捕獲異常

結構:

trycatch

捕獲異常的流程:

①.程式發生異常

②.根據發生的異常 產生對應的異常物件

③.這個異常物件會返回給呼叫者

④.如果呼叫者處理了這個異常(新增了try…catch…方法)

異常物件會繼續於catch中的語句進行匹配,如果匹配上了,就繼續執行這個程式

⑤.如果呼叫者沒有處理這個異常,那麼就會預設交給jvm虛擬機器處理,根據產生的異常物件列印錯誤資訊,結束程式

3.多catch捕獲異常

多catch捕獲異常可以幫助你完善**,讓出現的異常更容易被找到.

如果還要使用exception匹配異常,需要寫在最後,不然寫了詳細匹配的catch就會失效了

**舉例:

public

static

void

main();

trycatch(arithmeticexception e)catch(arrayindexoutofbound***ception e)catch(exception e)

}

實際寫**時,不是執行時異常就是編譯時異常

1.定義

執行時代異常:出現執行時**就是你的**有問題(程式設計師長犯的錯誤)

編譯時異常:出現編譯時異常系統會提前預警,強制你去處理,不處理編譯都不會處理

2.解決方法

執行時異常前面都已經說過了.使用try…catch…或者拋給上級處理.

編譯時異常其實就是系統這時候不知道你有沒有這個檔案,就相當於系統問你,要是沒有這個檔案怎麼辦,要求你做出解釋,提前做出解決辦法,這就是編譯時異常.是對問題的一種提前準備.

解決辦法;

①.自己處理,使用try…catch…

②.把異常丟擲去(誰呼叫就拋給誰)

3.例題舉例:

需求: 建立乙個人類 name 和 age

要求: 人類的年齡賦值時 要在 0 到 100 歲 之間

public

static

void

main(string args)throws exception

class person

public

person(string name, int age)

//set/get方法

public string getname()

public

void

setname(string name)

public

intgetage()

// 如果這個方法 要丟擲異常給呼叫者

// 必須在方法的宣告中 標識這個方法為異常方法

// throw 和 throws 的區別?

// throw 是用來丟擲乙個異常物件(在方法中出現)

// throws 是用來標識乙個方法 可以丟擲乙個異常(在方法的宣告中出現)

public

void

setage(string age)throws exceptionelse

}// 重寫tostring方法

@override

public string tostring()

}class ageoutofbound***ception extends exception

public

ageoutofbound***ception(string message)

}

當出現異常時,先捕獲異常,但是無權處理.所以要將異常上拋,且進一步確定異常種類,然後上拋給可以處理的方法進行處理.

java 異常詳解

一 異常機制出現的原因 異常處理能提公升程式的健壯性,c語言中是通過函式返回值來處理異常的,這種做法的弊端 1.返回值與現有邏輯可能衝突。2.可讀性差。執行 和異常處理 混淆在一起。3.需了解函式返回值詳細資訊,以做處理。異常處理demo author peter wang create time ...

java 異常 詳解

1 異常 理解 1 程式出現的不正常的情況。2 異常的體系 throwable error 嚴重問題,我們不處理。exception runtimeexception 執行期異常,我們需要修正 非runtimeexception 編譯期異常,必須處理的,否則程式編譯不通過 3 異常的處理 a jvm...

Java異常處理

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