这是我的代码块。
class Alpha{
public void Gamma() {
System.out.println("Alphas");
}
}
class Beta extends Alpha{
public void Gamma() throws Exception //Line 1
{
try {
System.out.println("Betas");
} catch(Exception e) {
System.out.println("Exception caught");
} finally {
System.out.println("xfg");
}
}
public static void main(String[] args) throws Exception {
Alpha g = new Beta();
g.Gamma();
}
}
此代码无法编译,因为我在 Line1 中添加了“throws”。
编译器抱怨被覆盖的方法不能抛出异常。
为什么这样 ?。
为什么不能被覆盖的方法抛出异常?
因为我可以通过在子类实现中添加 n 行代码来覆盖基类中的方法。
这些添加的代码可能会引发异常,所以为什么我不能在覆盖的方法中使用“抛出”?