我有一段代码,它可以抛出3种类型的异常,这些异常都是扩展的运行时异常。
所以,如果我在不同的catch中分别捕获所有这3个异常,那么它会根据发生的异常进入不同的catch。
我只是怀疑,因为所有 3 个都是 RuntimeException,所以它只能是第一个捕获,因为这也是一个运行时异常,但它与抛出的异常不同。
最佳答案
答案很简单:
- 当您想要/可以对异常进行不同处理时,则需要其独特的 catch block
- 当您只执行一些通用操作(例如记录异常)时,单个 catch block 即可完成这项工作。
换句话说:这完全取决于您的要求。当您需要不同的异常处理时,您需要不同的 catch block 。
所以重点是,你要么拥有这个:
try {
...
} catch (IllegalArgumentException iae) {
...
} catch (NullPointerException ne) {
...
...
或
try {
...
} catch (RuntimeException r) {
...
}
...
(确实不建议捕获类似 NPE 的内容;我只是用它作为一些 RuntimeException 的示例)
关于java - 不同类型的运行时异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44775261/