java中使用try-catch-finally一些值得注意的事(必看)
我們知道,try負責圈定可能會出異常的代碼;catch負責處理try中可能異常的處理,如記錄錯誤日志,使業(yè)務能夠正常運行;finally負責資源釋放等善后工作,無論有無異常都必須要執(zhí)行的代碼,一般都是放在finally中的。如果catch和finally也會出現(xiàn)異常,那么會是什么效果呢?
try { // java.lang.ArithmeticException int a = 1 / 0; } catch (Exception e) { System.out.println("catch"); // java.lang.NullPointerException String value = null; System.out.println(value.length()); } finally { System.out.println("finally"); // java.lang.ArrayIndexOutOfBoundsException int[] array = {1, 2, 3}; System.out.println(array[6]); }
這段代碼最終的執(zhí)行結果是:會拋出ArrayIndexOutOfBoundsException。try中代碼出現(xiàn)異常,會執(zhí)行對應的catch;
catch出現(xiàn)異常,會執(zhí)行finally;如果finally也出現(xiàn)異常,由于沒有進行處理,就會直接拋給JVM。如果這里沒有使用
finally塊,那么會拋出NullPointerException。
這也就是說:catch和finally中出現(xiàn)的異常也會直接拋出,如果我們沒有進行處理,就會在運行時產生錯誤。這提醒我們,如果catch和finally也可能出現(xiàn)異常,那么必須要再次使用try-catch進行處理。
以上這篇java中使用try-catch-finally一些值得注意的事(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot整合MyBatis實現(xiàn)樂觀鎖和悲觀鎖的示例
這篇文章主要介紹了SpringBoot整合MyBatis實現(xiàn)樂觀鎖和悲觀鎖的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09