Java之異常處理try{}catch(){}
try {
可能出現異常的程式碼(包括不會出現異常的程式碼)
} catch (Exception e) { //()裡為接收try{}程式碼塊中出現異常的型別
如果出現異常時的處理方式
}
try-catch的執行順序:
①從 try{ } 程式碼塊中第一行開始執行,執行到出現異常的程式碼,jvm會建立一個異常物件
②判斷catch中宣告的異常型別是否能捕捉到jvm建立的異常物件
i: 能捕捉到:直接跳到catch程式碼塊中執行。 不會結束程式,繼續從catch程式碼塊後面的程式碼執行
ii: 不能捕捉到:直接列印異常資訊並結束程式
③try{} 中沒有出現任何異常,把try中的所有程式碼執行完,跳過catch繼續程式注意:
1.能被catch捕捉到的條件 ==》try中建立的異常物件的型別與catch中宣告的型別一致,或者是catch中宣告的型別的子類。
2.如果只有一個捕捉指定型別的catch 只能捕捉對應型別的異常物件。 如果try中建立了其他型別的異常,捕捉不到。Jvm來處理異常
3.try{}程式碼塊中存在多行程式碼會丟擲異常的情況下,遇到第一個異常,後面程式碼的異常 只會被catch捕捉到異常資訊但都將不會被執行
4.那麼我們如何才能處理try{}中的每一個異常呢??
① 寫多個catch : 每一個catch處理一種異常 ==> try{ }catch(){ }catch(){ }catch(){ }
效果:當try中出現了異常,直接跳到第一個catch處判斷,是否能捕捉。
a:能捕捉:直接處理。 然後跳過trycatch往後執行
b:不能捕捉:跳到下一個catch繼續判斷。如果下一個能捕捉,重複第一步的效果
c:所有catch都不能捕捉 ==> 交給jvm處理:結束程式,在控制檯列印異常資訊
② 寫一個catch 要求:catch中的異常型別必須是try中丟擲的所有異常的父類
注意事項:寫多個catch時,下邊的catch宣告的異常型別不能是上邊的catch宣告的子類。
多個catch時,異常父類必須在下邊。 (沒有繼承關係時,就不用考慮此情況)
try{ }catch(){ }catch(){ }...finally{ } (catch可以有多個,也可以沒有 ==》 try{ }finally{ })
特點:寫在finally程式碼塊中程式碼,一定會被執行到
注意:①執行了 return 也會執行finally
②但 執行 System.exit(0) 就不會再執行finally了!!!
ex1: (此時 Integer in = new Integer("1"); 不會出現異常的情況下)
ex2: (此時 Integer in = new Integer("A1"); 出現異常的情況下)
ex3: 多個catch
ex4 :1個catch
ex5: return不影響finally{ }程式碼塊中程式碼的執行
ex6 : 執行 System.exit(0) ==》 便不會再執行finally{ }程式碼塊中程式碼
相關文章
- 異常-try...catch的方式處理異常1
- 異常-try...catch的方式處理異常2
- PHP 的異常處理之try和catch用法小結PHP
- c#之異常處理tcbs_try_catch_finallyC#
- 在 SQL Server 中使用 Try Catch 處理異常SQLServer
- JAVA的異常處理機制(一)——try...catch...finallyJava
- 無需寫try/catch,也能正常處理異常
- c# 異常處理try catch finally_throwC#
- [CareerCup] 14.2 Try-catch-finally Java中的異常處理Java
- C++異常處理:try,catch,throw,finally的用法C++
- Swift4 異常處理Try_Catch的使用之初見Swift
- python try異常處理Python
- JS 使用try catch捕獲異常JS
- 【轉】java中異常與try catch finally詳解Java
- C++及Windows異常處理(try,catch; __try,__finally; __try, __except)——一道筆試題引起的探究C++Windows筆試
- Nodejs try catch捕捉異常失效場景NodeJS
- WCF基礎教程之異常處理:你的Try..Catch語句真的能捕獲到異常嗎?
- JAVA學習之異常處理Java
- Hprose-java之異常處理ROSJava
- 前端魔法堂——異常不僅僅是try/catch前端
- JAVA 異常處理Java
- JAVA異常處理Java
- Java 異常處理Java
- 【java學習之再遇異常處理】Java
- SQL SERVER 裡的錯誤處理(try catch)SQLServer
- Java try catch finallyJava
- JAVA_異常處理Java
- Java--異常處理Java
- Java 異常處理六Java
- Python異常處理 try、except和else的使用Python
- pypthon3精要(11)-try,except,else異常處理
- java安全編碼指南之:異常處理Java
- Java異常處理之陋習展播 (轉)Java
- Java 異常表與異常處理原理Java
- 處理異常時,在catch中return會怎麼樣?
- 異常處理機制(二)之異常處理與捕獲
- Java之try-catch和throws的區別Java
- java異常處理筆記Java筆記