从 jdk 7 开始,异常处理已扩展为三个新功能:自动资源管理、多重捕获和更准确的重新抛出。
多重catch允许您使用同一个catch子句捕获多个异常,避免代码重复。
要使用多重捕获,请指定由 | 分隔的异常列表。在 catch 子句中。每个参数都是隐式最终参数。
使用示例:catch(final ArithmeticException | ArrayIndexOutOfBoundsException e) 使用相同的 catch 子句捕获两个异常。
程序在尝试除以零时生成 ArithmeticException,在访问数组边界之外的索引时生成 ArrayIndexOutOfBoundsException。两个异常都由同一个 catch 子句捕获。
更准确的重新抛出功能将可以重新抛出的异常类型限制为:
1 由 try 块抛出的已检查异常。
2 个之前的 catch 子句未处理的异常。
3 参数子类型或超类型的异常。
catch 块中的参数必须是最终的才能使用最终重新抛出,这意味着不能在 catch 块内为其赋予新值。这可以明确说明,但不是必需的。
以上就是三个新添加的例外功能的详细内容,更多请关注图灵教育其它相关文章!