異常產(chǎn)生和提交的過程
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比沈河網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式沈河網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋沈河地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。2.捕獲得到異常對象后,尋找處理這一異常的方法,運行時把當前異常交給該方法進行處理
3.異常處理的一般步驟①異常拋出?②異常捕獲→③異常處理
放可能引發(fā)異常的代碼,試試它所包含的代碼段中是否會發(fā)生異常
2.catch對應的異常類型和一個代碼塊,表明該catch塊用于處理這種類型的代碼塊,可以有多個catch。當有異常時,抓住并進行相應的處理,使程序不受異常的影響而繼續(xù)執(zhí)行下去
3.throw拋出一個實際的異常,拋出一個具體的異常對象,在程序中明確引發(fā)異常
4.throws如果一個方法可以引發(fā)異常,它本身并不處理該異常,那么它必須將該異常拋給調(diào)用它的方法。用于聲明該方法可能拋出的異常。
5.finally無論是否發(fā)生異常都要執(zhí)行的代碼
catch2.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
}
3.try-finally一段代碼可能引發(fā)多種類型的異常。引發(fā)異常時,按順序查看每條catch語句,執(zhí)行第一條類型匹配的catch{},后面的catch{}將被忽略。
安排catch語句的順序時,先安排子類,再安排父類。
public void method(){
? try{
? // 代碼段
}catch(異常類型1 ex){
? // 處理異常的代碼段
}catch(異常類型1 ex){
? // 處理異常的代碼段
}catch(異常類型1 ex){
? // 處理異常的代碼段
}
? // 代碼段
}
4.try-catch...catch-finally沒有catch子塊,發(fā)生異常時無法在當前程序中捕獲,由系統(tǒng)處理。
public int method(){
? try{
? return 1;
}
finally{
? // 放在任何情況下都必須執(zhí)行的代碼
? return 0;
}
}
當程序使用了外界資源,必須將釋放資源的代碼寫入finally塊
throw語句try{
? // 無異常時跳過catch{},執(zhí)行完執(zhí)行finally{}
? // 有異常時與catch{}匹配,跳過try{}直接執(zhí)行匹配的catch{}
}
catch(異常類型1 ex){
? // 類型匹配時 處理異常
? // 類型不匹配時 進行下一條catch塊匹配
}
catch(異常處理2 ex){
? //類型匹配時 處理異常
? //類型依然不匹配時 無finally則中斷程序 有finally時執(zhí)行finally{}
}
finally{
? // 有無異常都要執(zhí)行
? // catch都不匹配時也要執(zhí)行
}
throws子句用來明確地拋出一個異常。
if(異常條件1成立)
? throw new 異常1();
if(異常條件2成立)
? throw new 異常2();
...
// 拋出異常首先要生成異常對象
// 生成異常對象通過throw語句實現(xiàn):
IOException e=new IOException();
throw e;
三種嵌套用來聲明一個異常。
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)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文名稱:Java的異常處理-創(chuàng)新互聯(lián)
瀏覽地址:http://jinyejixie.com/article28/peijp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站建設、服務器托管、定制開發(fā)、網(wǎng)頁設計公司、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容