一条评论(由用户soc) on an answer to 关于尾调用优化的一个问题提到Java 7有一个新功能叫做“抑制异常”,因为“ARM的加入”(支持ARM CPU?)。
在这种情况下,什么是“受抑制的异常”?在其他情况下,“抑制的异常”是捕获然后忽略的异常(很少是一个好主意);这显然是不同的。
为了澄清 Jon 的答案中的引用,一种方法(每次执行)只能抛出一个异常,但在以下情况下这是可能的:try-with-resources
,抛出多个异常。例如,一个可能会被抛出到块中,另一个可能会被从隐式中抛出finally
由提供try-with-resources
.
编译器必须确定其中哪一个“真正”抛出。它选择抛出显式代码中引发的异常(try
块)而不是隐式代码抛出的块(finally
堵塞)。因此,隐式块中引发的异常将被抑制(忽略)。这只发生在多个异常的情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)