自定义异常
为什么需要自定义异常:
- 通过名字区分,到底是什么异常,有针对的解决办法
public class Demo6_Exception {
public static void main(String[] args) throws AgeOutOfBoundsException{
Person p = new Person();
p.setAge(-7);
}
}
class AgeOutOfBoundsException extends Exception{
public AgeOutOfBoundsException(String message) {
super(message);
}
public AgeOutOfBoundsException() {
}
}
输出:
当然,也可以继承 RuntimeException,这样就可以不用在方法体上写 throws 了
异常注意事项
注意事项:
- 子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。
- 如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是它的子集,子类不能抛出父类没有的异常
- 如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常。如果子类方法内有异常抛出,那么只能 try catch,不能 throws
如何使用异常处理:
- 原则:如果该功能内部可以将问题处理,用 try,如果处理不了,交由调用者处理,用 throws
- 区别:后续程序需要继续运行,用 try; 后续程序不需要继续运行,用 throws