据我了解,Java 7 的抑制异常功能是自动的。换句话说,在 6 中的 finally 块中发生的异常会被自动抑制,以支持在资源分配时发生的异常。
因此,在此示例中,a) 打开资源和 b) 关闭资源或 c) 可能两者都可能出错。
据我了解,Java 7 将抛出打开时发生的异常,我们可以要求它给我们抑制的异常,这些异常发生在其他地方。
try (BufferedReader inputReader = Files
.newBufferedReader(Paths.get(new URI(
"file:///Users/me/Desktop/readme.txt")), Charset
.defaultCharset())) {
String inputLine;
while ((inputLine = inputReader.readLine()) != null) {
System.out.println(inputLine);
}
}
问题是..程序员可以决定什么被压制?毕竟,public addSuppressed()
有。
请提供示例和用例。