重写在子类中使用已检查异常引发未经检查的异常的超类方法

  • 本文关键字:异常 超类 类方法 重写 子类 java
  • 更新时间 :
  • 英文 :


我们可以覆盖一个在子类中抛出未经检查的异常的超类方法吗?

不,你不能。

子类方法不能引发基超类方法的throws子句未涵盖的任何已检查异常。

换句话说,仅当子类方法出现在超类方法的throws子句中,或者它是该throws子句中显示的异常的子类时,子类方法才能引发选中的异常。

这是有道理的,因为超类的用户只知道超类方法的协定,那么他们怎么知道他们必须捕获超类的throws子句中未提到的其他异常呢?他们不能也不应该知道覆盖该方法的所有子类(其中一些可能尚未编写(。

最新更新