我正在让我的 foo 方法抛出异常 A,如
void foo() throws A {
....
throw new A();
}
有一个预先存在的函数 bar() 调用 foo,bar 最初抛出异常 B,它是 A 的超类,如
void bar() throws B {
foo();
throw new B();
}
问题是在 foo() 中添加 throw new A 之后,编译器会说我声明 bar() 也会抛出 A。A 扩展 B 的事实不是隐含的吗?除了在 bar() 的 throws 子句中添加 A 之外,还有什么解决方法?
编辑:
一个是
public class A extends B {
private complex-type type;
public A(String message);
public A(complex-type type);
}
乙是
public class B extends C {
public B(String message);
}
我认为 A 的构造函数没有超级调用。会不会是这个原因?