我有一个关于 Java 异常的奇怪问题,我不确定。
假设我们定义了一个类:
class A extends RuntimeException { ... }
假设我们有一个名为 C 的方法,它调用了抛出 A 的方法。什么是正确的?
里面的try-catch
抛出运行时异常。
1 或 2
以上都不是
它是一个RuntimeException
,你可以选择捕捉或不捕捉它。Java 不会强迫你使用 try-catch 或 throw 它,但如果你想捕捉它,你仍然可以。
的全部目的RuntimeException
是用户不应该为它做准备,因此 java 使用户可以选择是否捕获它。
所以在 4 个选项中,答案是“以上都不是”。
RuntimeException 及其子类未经检查,不需要声明为被抛出或显式处理,因此问题的答案不是上述任何一种。需要在 try-catch 块中声明或处理已检查的异常(扩展 Exception)。