当子类重写父类抛出异常的方法时,声明的异常必须是父类方法所声明异常的同类或子类。
自定义HotelAgeException异常:
package java_exception;
public class HotelAgeException extends Exception {
public HotelAgeException(){
super("18岁以下,80岁以上的住客必须由亲友陪同");
}
}
父类抛出HotelAgeException的异常:
package java_exception;
public class FatherTest {
public void test() throws HotelAgeException{
throw new HotelAgeException();
}
}
子类重写父类抛出异常的方法,声明的异常只能是HotelAgeException的同类或子类。
package java_exception;
public class SubTest extends FatherTest {
@Override
//public void test() throws HotelAgeException {
public void test() throws RuntimeException { //和HotelAgeException同为Exception的子类
// TODO Auto-generated method stub
//super.test();
}
}
创建HotelAgeException的子类异常SubException:
class SubException extends HotelAgeException {
}
当子类重写父类抛出异常的方法时,声明的异常可以是SubException:
package java_exception;
public class SubTest extends FatherTest {
@Override
public void test() throws SubException { //HotelAgeException的子类
// TODO Auto-generated method stub
//super.test();
}
}