java中catch ()_有关java中的try{}catch(){}的讲解
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/qq_38225558/article/details/82054100
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{ }代碼塊中代碼
————————————————
版權聲明:本文為CSDN博主「鄭清」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_38225558/article/details/82054100
【敬畏能量 敬畏自然】
總結
以上是生活随笔為你收集整理的java中catch ()_有关java中的try{}catch(){}的讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核udp校验和计算函数,Li
- 下一篇: 边缘检测robert原理_机器视觉尺寸检