try{
//正常業務
}catch(異常1 e1){ //0-n個catch塊
//處理異常1
}catch(異常2 e2){
//處理異常2
}finally{ 0-1個finally塊 ?【catch和finally至少有一個】
//通常用于回收資源
}
JDK7提供新功能:多異常捕捉
try{
//正常業務
}catch(異常1 | 異常2 e1){
//處理異常1,2
}catch(異常3 e3){
//處理異常3
}finally{ 0-1個finally塊? 【catch和finally至少有一個】
}
【異常處理可以嵌套】
catch和finally里都可以嵌套try-catch-finally
異常處理機制:
1、try塊出現異常時,系統生成一個異常類對象
2、異常比較catch的異常對象instanceof()返回true就執行catch塊代碼,將系統生成的異常類對象傳給catch做形參
【異常對象的方法】--getMessage() 異常信息
--printStackTrace()異常的跟蹤棧,程序排錯時從“第一個”出錯的位置進行修改
3、一個異常只能被一個cathc塊捕捉
4、多個catch塊捕捉異常,應該先捕捉小異常(子類異常)再捕捉大異常(父類)
5、finally總是會執行,不管是否發生異常,若try塊有return,先執行finally塊再執行try塊的return,return結果不變,如果finally塊里有return,則由finally的return結束方法