当超类默认构造函数具有'throws'子句时,为什么我会得到未报告的异常?

9 java exception

当我运行以下代码时,我得到未报告的异常

我的代码如下所示

class Super {    
  public Super() throws Exception {    
    System.out.println("Super Class");    
  }    
}

public class Sub extends Super {    
  public static void main(String[] args) throws Exception {    
    Sub s = new Sub();    
  }    
}
Run Code Online (Sandbox Code Playgroud)

以下错误得到:Sub.java:6:未报告的异常java.lang.Exception在默认构造函数
public class Sub extends Super {
1 error

jal*_*nn2 11

您尚未为Sub定义默认构造函数,Super正在报告已检查的异常.要修复它,请将此构造函数添加到Sub:

public Sub() throws Exception {
    super();
}
Run Code Online (Sandbox Code Playgroud)

  • 没什么大不了的,但你不需要显式调用super() - 编译器会自动执行此操作. (2认同)