- 子类在覆盖父类方法时,父类方法如果抛出了异常
那么子类的方法只能抛出父类的异常或者该异常的子类 - 如果父类抛出多个异常,那么子类只能抛出父类异常的子集
简单来说,子类覆盖父类的方法,只能抛出父类的异常的子集。
注意:如果父类方法没有抛出异常,那么子类覆盖时绝对不可能抛,只能try。
class A extends Exception {
}
class B extends A {
}
class C extends Exception {
}
class Fu{
void show throws A{
}
}
class Zi extends Fu{
void show() throws C{
System.out.println("");
}
}
class Test{
void method(Fu f){
try {
f.show();
}
catch(A a)
{
System.out.println("catch 到异常信息");
}
finally{
System.out.println("异常处理完毕,finally来做善后工作")
}
}
class ExceptionDemos{
public static void main(String[] args){
System.out.println("");
Test t= new Test();
t.method(new Zi());
}
}