Java自定義拋出異常簡單實例

/**
 *      自定義異常
 *Java中定義的異常有限,如果想描述程序中特有的異常情況,就需要自定義異常。
 *summary:
 * 1、在Java中允許用戶自定義異常,但自定義的異常類必須繼承自Exception或其子類。
 * 2、throw關鍵字用於在方法中聲明拋出異常的實例對象,其語法格式如下:
 *  throw Exception異常對象
 */
class MyException extends Exception {
    private int number;
    public MyException(String message) {
        super(message);
    }
    public MyException(String message, int number) {
        super(message);
        this.number = number;
    }
    public int getNumber() {
        return number;
    }
}
public class Example19 {
    public static void main(String[] args) {
        try {
            divide(20, 0);
        } catch (MyException my) {
            System.out.println("你給的除數是:" + my.getNumber() + ",而我們要求是:"+ my.getMessage());
        }
    }
    public static int divide(int a, int b) throws MyException {
        if (b == 0) {
            throw new MyException("除數不能爲零", b);
        } else {
            return a / b;
        }
    }
}

/**
 *  自定義異常類
 * (1)編寫自定義異常類MyException,該類繼承自Exception類,
 *    類中只有含一個字符串參數msg的構造方法,
 *    構造方法中只有一條語句super(msg)——調用父類的構造方法。
 * (2)編寫自定義類person,類中只有兩個私有的變量,一個是字符串類型的name,
 *    另一個是整型變量age;有兩個公有方法getAge()和setAge(int age),
 *    其中setAge(int age)的功能是把參數age的值賦值給類person中的變量age
 *   (但要求age>0,否則拋出自定義異常MyException類的對象);getAge()方法返回變量age的值。
 * (3)定義一個類 Test4 ,要求在類Test4中的main方法中類person的對象,
 *    先調用setAge(int age)方法,再調用getAge()方法。
 */
class MyException extends Exception{
    public MyException(String msg){
        super(msg);
    }
}
class Person{
    private String name;
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) throws MyException{
        if(age>0){
            this.age = age;
        }else{
            throw new MyException("年齡必須大於0");
        }
    }
}
 class Test4{
     public static void main(String[] args) throws MyException {
        Person p1=new Person();
        p1.setAge(1);
        System.out.println("年齡爲"+p1.getAge());
     }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章