java中单个catch子句中有多少个异常?

kulphzqa  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(221)

从Java7中,我们可以在一个catch子句中捕获多个异常,如下所示。

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

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

2g32fytz

2g32fytz1#

关于一般捕获,而不是区分个别异常。
可以使用基类异常,如 IOException ,并删除其子异常,如 EOFException . 这是一个很好的实践,因为所有(可能将来)子异常都被捕获。这一原则在某种程度上也适用 throws IOException 条款
运行时异常,如果未在其自身中处理 catch ,只应被抓获,可能以相同的方式,如 RuntimeException ,当它是一个包罗万象的时候(一个人不应该总是抓住一切。)

相关问题