Java學習筆記之異常處理

異常: Error Exceptionjava

概述:
try {代碼塊1} :對代碼塊1進行代碼監控
catch(){代碼塊2}:當代碼1出現了對應捕獲的異常則執行此對應的代碼塊內容。
finally{代碼塊3} :表示不管如何,是否出現異常,都會執行裏面的代碼內容。

有異常:代碼塊1 ---> 代碼塊2 ---->代碼塊3 (出現異常之後,異常後面的代碼就不會執行了,代碼流程改變了。)
沒異常:代碼塊1 ---> 代碼塊3

咱們能夠分別捕獲多種異常,一旦發生那種異常就進入對應catch裏面的代碼塊。
捕獲的異常的順序:先子類到父類 先細後粗

可不能夠沒有finally塊?能夠
能夠不能夠沒有catch塊?沒有finally就必定要有catch.若是有finally語法上能夠沒有catch,咱們仍是要加上catchspa

編譯時異常:編譯期間就須要捕獲異常。也就是說必須有try catch捕獲
運行時異常:NullPointerException 。能夠根據須要有或者沒有。
指針

 1         try {  2             
 3             //咱們要對下面的代碼進行監控  4             //代碼塊1;  5             //引用數據類型爲null的時候,不能調用null上面的任何方法或者屬性。不然給出空指針異常。NullPointerException  6 // String s =null;  7 // s.equals("abc");  8             
 9 // System.out.println(5/0);
10             
11             
12             System.out.println("hello"); 13         } catch (NullPointerException e) { 14             //代碼塊2;// 只有出現了NullPointerException的時候才執行
15             System.out.println("你的代碼出現了NullPointerException。。。。。"); 16 // e.printStackTrace();
17         } catch (ArithmeticException e) { 18             //代碼塊2;// 只有出現了ArithmeticException的時候才執行
19             System.out.println("你的代碼出現了ArithmeticException。。。。。"); 20 // e.printStackTrace();
21         } finally { 22             //代碼塊3;
23             System.out.println("這句代碼真的老是會執行嗎?"); 24         }

自定義異常:code

自定義一個異常類繼承Exception接口blog

 

public class OutOfAgeException extends Exception{ /** * 自定義異常處理 */
    private static final long serialVersionUID = 1L; public OutOfAgeException(String msg){ super(msg); } }

 

寫一個方法拋出異常繼承

 

public static void age(int age) throws OutOfAgeException { if(age<0){ throw new OutOfAgeException("年齡不合法..."); }else{ System.out.println("年齡合法"); } }

 

在上訴代碼塊1中調用方法就行接口

 

java異常中throw和throws的區別:

throws:用來聲明一個方法可能產生的全部異常,不作任何處理而是將異常往上傳,誰調用我我就拋給誰。it

throw:則是用來拋出一個具體的異常類型。io

相關文章
相關標籤/搜索