Java 继承中异常的处理

Java 继承中异常的处理

父类的方法需要抛出异常,子类继承(重写)了父类的方法,那么:

    子类的方法是否要同样抛出异常? 是否抛出同样的异常? 能否抛出父类没有的异常? 还是一定要抛出父类所抛出异常范围内的异常?

子类中重写的方法一定不能抛出新的必检异常,即不能抛出比父类中的方法更加宽泛的必检异常。

Error 和 RuntimeException 及其子类称为免检异常,除了 RuntimeException 之外的 Exception 称为必检异常(RuntimeException 是 Exception 的子类) 。

例如: 父类的一个方法申明了一个检查异常 IOException ,在重写这个方法是就不能抛出 Exception ,只能抛出 IOException 的异常及其子类异常,也可以抛出免检异常。

总结:

    子类重写父类方法所抛出的异常不能超过父类的范畴。 子类重写父类方法要抛出与父类相同的异常(或其子类)。 子类重写父类方法可以任意抛出免检异常。 子类重写父类方法可以不抛出异常。
经验分享 程序员 微信小程序 职场和发展