小编cha*_*mba的帖子

Java中的异常和继承

假设我们有这个问题

public class Father{
    public void method1(){...}
}

public class Child1 extends Father{
    public void method1() throws Exception{
    super.method1();
    ... 
    }

}
Run Code Online (Sandbox Code Playgroud)

Child1扩展Father和覆盖,method1但鉴于实现Child1.method1现在抛出异常.这不会编译,因为重写方法不能抛出新的异常.

什么是最好的解决方案?

  • 传播所需的例外Father.对我而言,这是针对封装,继承和一般OOP(Father可能引发永远不会发生的异常).
  • 用一个RuntimeException代替?此解决方案不会传播ExceptionFather,但Oracle文档和其他来源声明,当"客户端代码无法执行任何操作"时,应使用该类异常.这不是那种情况,这个例外对于恢复blablabla很有用(为什么使用它是错误的RuntimeException?).
  • 其他..

java inheritance exception

11
推荐指数
1
解决办法
5899
查看次数

标签 统计

exception ×1

inheritance ×1

java ×1