博客名称 |
---|
Java-(中级) |
文章目录
Exception-异常注意事项
A:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
B:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
C:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
代码演示A
A:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
public class Fu{
public void show() throws ParseException{
}
}
class Zi extends Fu{
@Override
public void show() throws ParseException{//重写父类方法异常一定要比父类方法异常小或者等于
}
}
/*class Zi extends Fu{
@Override
public void show() throws Exception {//编译报错:子类重写方法,抛出的异常比父类的方法的异常大报错
}
}*/
代码演示B(代码演示A相似不写代码了)
B:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
代码演示C
C:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
public class Fu{
public void show(){
}
}
class Zi extends Fu{
@Override
public void show() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
sdf.parse("2018-0808");
} catch (ParseException e) {
e.printStackTrace();
}
}
}
/*
class Zi extends Fu{
@Override
public void show() throws ParseException {//编译报错:如果父类方法没有抛出异常,重写方法就不能抛出异常,只能trycatch
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.parse("2018-0808");
}
}
*/