Java中try、catch的使用方法
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的使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: