首页 > 解决方案 > Java中单个catch子句中有多少个异常?

问题描述

从 Java 7 开始,我们可以在单个 catch 子句中捕获多个异常,如下所示。

try { 
  // Your code here.
} catch (IllegalArgumentException | SecurityException | IllegalAccessException |
            NoSuchFieldException e) { 
  // Handle exception here.
}

在同一个 catch 子句中可以捕获多少个异常?有没有限制?同一 catch 中异常数量的最佳做法是什么?

标签: javaexception

解决方案


关于一般捕获,不区分个别例外。

您可以使用基类异常,如IOException,并删除其子异常,如EOFException. 这是一个很好的做法,因为所有(可能是将来的)子异常都会被捕获。这一原则也适用于throws IOException条款。

运行时异常,当不被自己处理时catch,应该只被捕获,也许以相同的方式,RuntimeException当它是一个包罗万象的时候。(一个人不应该总是抓住一切。)


推荐阅读