java - 不同类型的运行时异常处理

标签 java exception

我有一段代码,它可以抛出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/

相关文章:

java - 透明框架在 Windows 中可以正常工作,但在 Linux 中不能

java - 将 ThreadLocal 与包含静态成员的现有类一起使用

Python Django 异常中间件用于不在 View 中的异常

python - 引发异常或引发异常()

仅在调试时捕获 C# 异常?

java - 从字符串中提取方法键/参数

java - 从文本文件java中提取 token

java - Elasticsearch java批量更新插入异常

java - 明智的做法是,在引发异常的条件之后添加 else 是否更好?

java - leetcode 生成括号算法