Java的異常處理-創(chuàng)新互聯(lián)

異常處理機制 1.拋棄異常

異常產(chǎn)生和提交的過程

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比沈河網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式沈河網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋沈河地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。2.捕獲

得到異常對象后,尋找處理這一異常的方法,運行時把當(dāng)前異常交給該方法進行處理

3.異常處理的一般步驟

①異常拋出?②異常捕獲→③異常處理


Java異常處理的5個關(guān)鍵字 1.try

放可能引發(fā)異常的代碼,試試它所包含的代碼段中是否會發(fā)生異常

2.catch

對應(yīng)的異常類型和一個代碼塊,表明該catch塊用于處理這種類型的代碼塊,可以有多個catch。當(dāng)有異常時,抓住并進行相應(yīng)的處理,使程序不受異常的影響而繼續(xù)執(zhí)行下去

3.throw

拋出一個實際的異常,拋出一個具體的異常對象,在程序中明確引發(fā)異常

4.throws

如果一個方法可以引發(fā)異常,它本身并不處理該異常,那么它必須將該異常拋給調(diào)用它的方法。用于聲明該方法可能拋出的異常。

5.finally

無論是否發(fā)生異常都要執(zhí)行的代碼


異常處理語句 1.try-catch
catch

每個try代碼塊可以伴隨一條或多條catch語句,用于處理try代碼塊中生成的異常事件。

需要一個形式參數(shù)指明它能夠捕獲地異常類型,必須是Throwable的子類。

不會產(chǎn)生異常情況,執(zhí)行try{}

public void method(){

? try{

? // 代碼段 不會產(chǎn)生異常 √

}catch(異常類型 ex){

? // 處理異常的代碼段

}

}

會產(chǎn)生異常情況,try{}有異常,與catch(匹配異常類型),執(zhí)行catch{}

public void method(){

? try{

? // 代碼段1

? //? 產(chǎn)生異常的代碼段2 與catch類型匹配后進入catch{}

? // 代碼段3

}catch(異常類型 ex){????????// 如果類型不匹配則程序中斷

? // 處理異常的代碼段4 √

}

? // 代碼段5

}

2.try-catch-catch

一段代碼可能引發(fā)多種類型的異常。引發(fā)異常時,按順序查看每條catch語句,執(zhí)行第一條類型匹配的catch{},后面的catch{}將被忽略。

安排catch語句的順序時,先安排子類,再安排父類。

public void method(){

? try{

? // 代碼段

}catch(異常類型1 ex){

? // 處理異常的代碼段

}catch(異常類型1 ex){

? // 處理異常的代碼段

}catch(異常類型1 ex){

? // 處理異常的代碼段

}

? // 代碼段

}

3.try-finally

沒有catch子塊,發(fā)生異常時無法在當(dāng)前程序中捕獲,由系統(tǒng)處理。

public int method(){

? try{

? return 1;

}

finally{

? // 放在任何情況下都必須執(zhí)行的代碼

? return 0;

}

}

當(dāng)程序使用了外界資源,必須將釋放資源的代碼寫入finally塊

4.try-catch...catch-finally

try{

? // 無異常時跳過catch{},執(zhí)行完執(zhí)行finally{}

? // 有異常時與catch{}匹配,跳過try{}直接執(zhí)行匹配的catch{}

}

catch(異常類型1 ex){

? // 類型匹配時 處理異常

? // 類型不匹配時 進行下一條catch塊匹配

}

catch(異常處理2 ex){

? //類型匹配時 處理異常

? //類型依然不匹配時 無finally則中斷程序 有finally時執(zhí)行finally{}

}

finally{

? // 有無異常都要執(zhí)行

? // catch都不匹配時也要執(zhí)行

}

throw語句

用來明確地拋出一個異常。

if(異常條件1成立)

? throw new 異常1();

if(異常條件2成立)

? throw new 異常2();

...

// 拋出異常首先要生成異常對象

// 生成異常對象通過throw語句實現(xiàn):

IOException e=new IOException();

throw e;

throws子句

用來聲明一個異常。

returnType methodName([paramlist]) throws exceptionList{...}

返回類型 方法名(參數(shù)列表) throws 異常列表{...}

三種嵌套

try

{

? try{ }

? catch(Exception E1){ }

}

catch(Exception E2){ }

try{ }

catch(Exception E1)

{

? try{ }

? catch(Exception E2){ }

}

try{ }

catch(Exception E2){ }

finally

{?

? try{ }

? catch(Exception E1){ }

? finally{ }?

}?


用戶自定義異常類

要用try-catch-finally捕獲,但必須由用戶自己拋出(throw new MyException)。自定義異常類必須使Throw的直接子類或間接子類。(最好定義為Exception的子類。)

class 自定義異常1 extends Exception{

? 自定義異常1(String str)

? super(str);

}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

本文名稱:Java的異常處理-創(chuàng)新互聯(lián)
瀏覽地址:http://www.muchs.cn/article28/peijp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站建設(shè)、服務(wù)器托管定制開發(fā)、網(wǎng)頁設(shè)計公司微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司