Java 中带方法重写的异常处理

2025年4月24日 | 阅读 3 分钟

如果我们谈论带异常处理的方法重写,那么有很多规则。

下面列出了一些规则

  • 如果超类方法未声明异常
    • 如果超类方法未声明异常,则子类重写方法不能声明已检查异常,但可以声明未检查异常。
  • 如果超类方法声明了异常
    • 如果超类方法声明了异常,则子类重写方法可以声明相同的异常、子类异常或不声明异常,但不能声明父类异常。

如果超类方法未声明异常

规则 1:如果超类方法未声明异常,则子类重写方法不能声明已检查异常。

让我们考虑基于上述规则的以下示例。

TestExceptionChild.java

输出

Exception Handling with Method Overriding in Java

规则 2:如果超类方法未声明异常,则子类重写方法不能声明已检查异常,但可以声明未检查异常。

TestExceptionChild1.java

输出

Exception Handling with Method Overriding in Java

如果超类方法声明了异常

规则 1:如果超类方法声明了异常,则子类重写方法可以声明相同的子类异常或不声明异常,但不能声明父类异常。

子类重写方法声明父类异常的示例

TestExceptionChild2.java

输出

Exception Handling with Method Overriding in Java

子类重写方法声明相同异常的示例

TestExceptionChild3.java

输出

Exception Handling with Method Overriding in Java

子类重写方法声明子类异常的示例

TestExceptionChild4.java

输出

Exception Handling with Method Overriding in Java

子类重写方法不声明异常的示例

TestExceptionChild5.java

输出

Exception Handling with Method Overriding in Java