Java自定義異常類
作者:winkey
本文主要講解了關(guān)于Java自定義異常類的介紹。
自定義異常:步驟
一:創(chuàng)建一個(gè)類繼承于Throwable或其子類;
二:添加構(gòu)造方法;
三:在一個(gè)方法中使用throw拋出異常;
四:在另一個(gè)方法中捕獲并處理異常。
示例:
一、繼承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);
- }
- //自定義異常類的主要作用是區(qū)分異常發(fā)生的位置,當(dāng)用戶遇到異常時(shí),
- //根據(jù)異常名就可以知道哪里有異常,根據(jù)異常提示信息進(jìn)行修改。
- }
二、 繼承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);
- }
- }
三、測(cè)試
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();
- }
- //當(dāng)一個(gè)try塊后面跟著多個(gè)catch塊時(shí),如果發(fā)生的異常匹配***個(gè)catch塊的參數(shù),便將異常處理權(quán)利交給***個(gè)catch塊。
- //如果發(fā)生的異常與***個(gè)catch塊不匹配,便看是否與第二個(gè)catch塊匹配,依次下去,如果到***依然無(wú)法匹配該異常,
- //便需要在方法聲明中添加一條throw語(yǔ)句,將該異常拋出。
- //因此,在有多個(gè)catch塊,而且每次處理的異常類型具有繼承關(guān)系時(shí),應(yīng)該首先catch子類異常,再catch父類異常。
- //比如,如果MySecondException繼承MyFirstException,那么***將catch(MySecondException e2)放在前面
- //把catch (MyFirstException e1)放在后面。
- }
原文鏈接:http://www.cnblogs.com/winkey4986/archive/2011/12/13/2285768.html
【編輯推薦】
責(zé)任編輯:林師授
來(lái)源:
winkey的博客