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());
     }
}

 

你可能感兴趣的:(Java)