一、java異常簡(jiǎn)介
1》異常簡(jiǎn)介:
a、異常處理的作用
b、Java異常體系結(jié)構(gòu)的簡(jiǎn)介
2》處理異常:
a、try-catch以及try-catch-finally
b、拋出異常
c、自定義異常
d、異常鏈
3》異常定義:
有易于常態(tài),和正常情況不一樣,有錯(cuò)誤出現(xiàn),阻止當(dāng)前方法或作用域,稱之為異常。
4》異常的體系結(jié)構(gòu)
Throwable----->Error :不常見的錯(cuò)誤類型,通常指系統(tǒng)錯(cuò)誤,比如:虛擬機(jī)錯(cuò)誤或線程死鎖(程序終結(jié)者)
|
|------------->Exception:異常,比如指編碼、環(huán)境、用戶操作輸入出現(xiàn)問題
|-------->非檢查異常:RuntimeException:比如空指針異常、數(shù)組下標(biāo)異常、算數(shù)異常
|-------->檢查異常:比如:文件異常、SQL異常
二、處理異常
1》try {
//一些會(huì)拋出異常的方法
}catch(Exception e){
//處理該異常的代碼塊
}
如果try中確實(shí)發(fā)生異常了,程序?qū)?huì)終止執(zhí)行,程序的控制權(quán)將被移交給catch塊中的異常處理程序。
catch如何處理呢?可以發(fā)出警告,或者記錄錯(cuò)誤日志。
2》多重try-catch塊
處理不同的異常
注:catch塊是先子類后父類。
3》try-catch-finally
try {
//一些會(huì)拋出異常的方法
}catch(Exception e){
//處理該異常的代碼塊
}...(n個(gè)catch塊)...{
}finally{
//最終將要執(zhí)行的一些代碼
}
三、Java中異常拋出以及自定義異常
1》異常拋出
throw:將產(chǎn)生的異常拋出(動(dòng)作)
throws:寫在方法名和方法參數(shù)表之后,方法體之前,可拋出多種異常,每個(gè)異常用 , 隔開
聲明將要拋出何種類型的異常(聲明)
public void 方法名(參數(shù)列表) throws 異常列表{
//調(diào)用會(huì)拋出異常的方法或者:
throw new Exception() ;
}
2》自定義異常
自定義異常:自己定義的異常類型
class 自定義異常類 extends 異常類型{}
四、異常鏈
1》定義:捕獲的異常包裝成新的異常,新的異常添加對(duì)原始異常的引用,再把新的異常拋出。
五、實(shí)際應(yīng)用的經(jīng)驗(yàn)和總結(jié)
1》處理運(yùn)行時(shí)異常時(shí),采用邏輯去合理規(guī)避同時(shí)輔助try-catch處理
2》在多重catch塊后面,可以加一個(gè)catch(Exception)來處理可能會(huì)被遺漏的異常
3》對(duì)于不確定的代碼,也可以加上try-catch,處理潛在的異常
4》盡量去處理異常,切忌只是簡(jiǎn)單的調(diào)用PRintStackTrace()去打印輸出,可加以適當(dāng)?shù)妮o助,例如:業(yè)務(wù)的回滾
5》具體如何處理異常,要根據(jù)不同的業(yè)務(wù)需求和異常類型去決定。
6》盡量添加finally語句塊去釋放占用的資源
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注