本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接
我可以在同一catch子句中捕获多个Java异常吗?
在Java中,我想做这样的事情:
try {
...
} catch (/* code to catch IllegalArgumentException, SecurityException,
IllegalAccessException, and NoSuchFieldException at the same time */) {
someCode();
}
...代替:
try {
...
} catch (IllegalArgumentException e) {
someCode();
} catch (SecurityException e) {
someCode();
} catch (IllegalAccessException e) {
someCode();
} catch (NoSuchFieldException e) {
someCode();
}
有什么办法吗?
高分回答:
在Java 7中,您可以定义多个catch子句,例如:
catch (IllegalArgumentException | SecurityException e)
{
...
}
高分回答:
如果存在异常层次结构,则可以使用基类捕获异常的所有子类。在简并的情况下,您可以使用以下命令捕获所有Java异常:
try {
...
} catch (Exception e) {
someCode();
}
在更常见的情况下,如果RepositoryException是基类,而PathNotFoundException是派生类,则:
try {
...
} catch (RepositoryException re) {
someCode();
} catch (Exception e) {
someCode();
}
上面的代码将捕获RepositoryException和PathNotFoundException以进行一种异常处理,并将所有其他异常组合在一起。从Java 7开始,按照上述@OscarRyz的回答:
try {
...
} catch( IOException | SQLException ex ) {
...
}
文章翻译自kgs4h5t57thfb6iyuz6dqtun5y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/3…
作者建议: 其实异常捕获是支持嵌套,就比如,我们使用切面来全局捕获异常,当然也可以在指定的代码块中对异常进行捕获
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️