Java中怎么自定義異常類,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
自定義異常:步驟 ­
一:創建一個類繼承于Throwable或其子類;
二:添加構造方法;
三:在一個方法中使用throw拋出異常;
四:在另一個方法中捕獲并處理異常。
示例:
一、繼承Exception類
Java代碼
public class MyFirstException extends Exception { public MyFirstException() { super(); } public MyFirstException(String msg) { super(msg); } public MyFirstException(String msg, Throwable cause) { super(msg, cause); } public MyFirstException(Throwable cause) { super(cause); } //自定義異常類的主要作用是區分異常發生的位置,當用戶遇到異常時, //根據異常名就可以知道哪里有異常,根據異常提示信息進行修改。 }
二、 繼承Throwable 類
Java代碼
public class MySecondException extends Throwable { public MySecondException() { super(); } public MySecondException(String msg) { super(msg); } public MySecondException(String msg, Throwable cause) { super(msg, cause); } public MySecondException(Throwable cause) { super(cause); } }
三、測試
Java代碼
/** * 自定義異常類的使用 * @author new * */ public class TestMyException { public static void firstException() throws MyFirstException{ throw new MyFirstException("\"firstException()\" method occurs an exception!"); } public static void secondException() throws MySecondException{ throw new MySecondException("\"secondException()\" method occurs an exception!"); } public static void main(String[] args) { try { TestMyException.firstException(); TestMyException.secondException(); } catch (MyFirstException e1){ System.out.println("Exception: " + e1.getMessage()); e1.printStackTrace(); } catch (MySecondException e2){ System.out.println("Exception: " + e2.getMessage()); e2.printStackTrace(); } //當一個try塊后面跟著多個catch塊時,如果發生的異常匹配***個catch塊的參數,便將異常處理權利交給***個catch塊。 //如果發生的異常與***個catch塊不匹配,便看是否與第二個catch塊匹配,依次下去,如果到***依然無法匹配該異常, //便需要在方法聲明中添加一條throw語句,將該異常拋出。 //因此,在有多個catch塊,而且每次處理的異常類型具有繼承關系時,應該首先catch子類異常,再catch父類異常。 //比如,如果MySecondException繼承MyFirstException,那么***將catch(MySecondException e2)放在前面 //把catch (MyFirstException e1)放在后面。 }
關于Java中怎么自定義異常類問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。