Java中try、catch的使用方法
阿新 • • 發佈:2020-06-23
Java中有兩種處理異常的方式,分別是用throws丟擲異常、用try、catch捕獲異常。
try-catch
在Java
try-catch語句的語法格式:
try{ //程式碼塊 }catch(Exception1 e){ //丟擲異常後所要進行的操作 }
當try語句當中捕獲到異常時,會將異常丟擲到catch語句中匹配異常型別,當異常和catch後面的異常型別相匹配時,則catch語句將會執行。
舉個最基礎的例子,除數不能為0
try中的異常與catch後面的異常型別匹配的情況:
try{ int i = 1/0;//發生異常立即跳往catch語句中執行,不執行異常程式碼下面的程式碼 System.out.println("輸出結果為:" + i); }catch(ArithmeticException e){ e.printStackTrace(); System.out.println("編譯報錯,除數不能為0"); }
輸出結果:
try中丟擲的異常與catch後面的異常型別不匹配的情況:
try{ int i = 1/0;//發生異常立即跳往catch語句中執行,不執行異常程式碼下面的程式碼 System.out.println("輸出結果為:" + i); }catch(NullPointerException e){ e.printStackTrace(); System.out.println("編譯報錯,除數不能為0"); //因為異常型別不匹配所以該catch語句並未執行 }
輸出結果:
一個try語句可以接多個catch語句
當有多個catch語句時,try部分的語句如果發生異常,就會在依次在各個catch語句中試圖匹配異常型別。
try{ int i = 1/0;//發生異常立即跳往catch語句中執行,不執行異常程式碼下面的程式碼 System.out.println("輸出結果為:" + i); }catch(ArithmeticException e){ e.printStackTrace(); System.out.println("運算條件異常"); //try語句捕獲的異常與該catch語句後的異常相匹配,所以執行該catch語句 }catch(NullPointerException e){ e.printStackTrace(); System.out.println("空指標異常"); //try語句捕獲的異常與該catch語句後的異常不匹配,所以不執行該catch語句 }
JDK1.7之後還有一種不常用的寫法:
try{ int i = 1/0;//發生異常立即跳往catch語句中執行,不執行異常程式碼下面的程式碼 System.out.println("輸出結果為:" + i); }catch (NullPointerException | ArithmeticException e) { e.printStackTrace(); if (e instanceof NullPointerException) System.out.println("空指標異常"); if (e instanceof ArithmeticException) System.out.println("運算條件異常"); }
這種寫法需要通過instanceof 進行判斷具體的異常型別。
兩種寫法的輸出都是一樣的:
在catch內部,通常下面的方法輸出異常資訊:
getMessage() 返回一個字串對發生的異常進行描述。
printStackTrace() :列印異常資訊出錯的位置及原因。
到此這篇關於Java中try、catch的使用的文章就介紹到這了,更多相關Java中try catch的使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!