- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java中怎么自定義異常類(lèi)
Java中怎么自定義異常類(lèi),針對這個(gè)問(wèn)題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
自定義異常:步驟 ­
一:創(chuàng )建一個(gè)類(lèi)繼承于Throwable或其子類(lèi);
二:添加構造方法;
三:在一個(gè)方法中使用throw拋出異常;
四:在另一個(gè)方法中捕獲并處理異常。
示例:
一、繼承Exception類(lèi)
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); } //自定義異常類(lèi)的主要作用是區分異常發(fā)生的位置,當用戶(hù)遇到異常時(shí), //根據異常名就可以知道哪里有異常,根據異常提示信息進(jìn)行修改。 }
二、 繼承Throwable 類(lèi)
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代碼
/** * 自定義異常類(lèi)的使用 * @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(); } //當一個(gè)try塊后面跟著(zhù)多個(gè)catch塊時(shí),如果發(fā)生的異常匹配***個(gè)catch塊的參數,便將異常處理權利交給***個(gè)catch塊。 //如果發(fā)生的異常與***個(gè)catch塊不匹配,便看是否與第二個(gè)catch塊匹配,依次下去,如果到***依然無(wú)法匹配該異常, //便需要在方法聲明中添加一條throw語(yǔ)句,將該異常拋出。 //因此,在有多個(gè)catch塊,而且每次處理的異常類(lèi)型具有繼承關(guān)系時(shí),應該首先catch子類(lèi)異常,再catch父類(lèi)異常。 //比如,如果MySecondException繼承MyFirstException,那么***將catch(MySecondException e2)放在前面 //把catch (MyFirstException e1)放在后面。 }
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站