据我理解,Java 7的异常抑制功能是自动的。换句话说,在6中发生在finally块中的异常会自动被压制,以便将资源分配过程中发生的异常置于优先位置。
因此,在这个例子中,可能会出现以下问题:a)打开资源时出错;b)关闭资源时出错;或c)两者皆有可能出错。
据我理解,Java 7会抛出在打开资源时发生的异常,并询问我们需要哪些在其他地方发生的被压制的异常。
问题是,程序员能决定哪些内容被抑制吗?毕竟,
请提供一个示例和使用情况。
因此,在这个例子中,可能会出现以下问题: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()
是存在的。请提供一个示例和使用情况。