从Java7中,我们可以在一个catch子句中捕获多个异常,如下所示。
try { // Your code here.} catch (IllegalArgumentException | SecurityException | IllegalAccessException | NoSuchFieldException e) { // Handle exception here.}
try {
// Your code here.
} catch (IllegalArgumentException | SecurityException | IllegalAccessException |
NoSuchFieldException e) {
// Handle exception here.
}
在同一catch子句中可以捕获多少个异常?有限制吗?关于同一捕获中的异常数量,最佳做法是什么?
2g32fytz1#
关于一般捕获,而不是区分个别异常。可以使用基类异常,如 IOException ,并删除其子异常,如 EOFException . 这是一个很好的实践,因为所有(可能将来)子异常都被捕获。这一原则在某种程度上也适用 throws IOException 条款运行时异常,如果未在其自身中处理 catch ,只应被抓获,可能以相同的方式,如 RuntimeException ,当它是一个包罗万象的时候(一个人不应该总是抓住一切。)
IOException
EOFException
throws IOException
catch
RuntimeException
1条答案
按热度按时间2g32fytz1#
关于一般捕获,而不是区分个别异常。
可以使用基类异常,如
IOException
,并删除其子异常,如EOFException
. 这是一个很好的实践,因为所有(可能将来)子异常都被捕获。这一原则在某种程度上也适用throws IOException
条款运行时异常,如果未在其自身中处理
catch
,只应被抓获,可能以相同的方式,如RuntimeException
,当它是一个包罗万象的时候(一个人不应该总是抓住一切。)