java - 什么是抑制异常?

标签 java exception exception-handling try-with-resources

soc 的评论(用户 answer )至a question about tail call optimisation提到 Java 7 有一个名为“抑制异常”的新特性,因为“添加了 ARM”(支持 ARM CPU?)。

在这种情况下,什么是“被抑制的异常”?在其他情况下,“被抑制的异常”将是一个被捕获然后被忽略的异常(很少是一个好主意);这显然是不同的东西。

最佳答案

为了澄清 Jon 的回答中的引用,一个方法(每次执行)只能抛出一个异常,但在 try-with-resources 的情况下,可能会出现多个异常被抛出。例如,可能会在 block 中抛出一个,而另一个可能会从 try-with-resources 提供的隐式 finally 中抛出。

编译器必须确定“真正”抛出哪些。它选择抛出在显式代码(try block 中的代码)中引发的异常,而不是由隐式代码(finally block )引发的异常。因此,隐式 block 中抛出的异常被抑制(忽略)。这只发生在多个异常的情况下。

关于java - 什么是抑制异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7849416/

相关文章:

java - SAML 服务提供者 spring security

c# - 如何获取导致异常的方法的名称

java - 在 Android 操作系统上捕获未处理的 JAVA 运行时异常的最佳实践?

java - OrientDB 的 GremlinPipeline 问题

Java:操作顺序、增量后澄清

scala - 处理异常以便理解

c# - 无法将自定义类型隐式转换为 IDisposable 错误

java - 我如何捕获 ClassCastException?

.net - C++/CLI : Catching all (. NET/Win32/CRT) 异常

Java 2D游戏角色行走?