代码对比
✕ Pre-Java 7
try {
process();
} catch (IOException e) {
log(e);
} catch (SQLException e) {
log(e);
} catch (ParseException e) {
log(e);
}
✓ Java 7+
try {
process();
} catch (IOException
| SQLException
| ParseException e) {
log(e);
}
发现此代码有问题? 告诉我们。
为什么现代方式更好
DRY 原则
相同的处理逻辑只写一次,而非三次。
类型安全
捕获的异常是实际上 final 的——无法被重新赋值。
更少代码
消除相同 catch 块的重复。
旧方式
单独的 catch 块
现代方式
多重 catch
自 JDK
7
难度
入门
JDK 支持
多异常捕获
可用
自 JDK 7 起广泛可用(2011 年 7 月)
工作原理
多重 catch 用相同的代码处理多种异常类型。异常变量是实际上 final 的,防止类型不安全的重新赋值。
相关文档