如果 finally block 抛出异常,到底会发生什么?
具体来说,如果在 finally block 的中途抛出异常会发生什么。此 block 中的其余语句(之后)是否被调用?
我知道异常会向上传播。
最佳答案
If a finally block throws an exception what exactly happens ?
该异常向外传播并向上传播,并将(可以)在更高级别进行处理。
您的 finally block 将不会在抛出异常的地方完成。
如果 finally block 是在处理较早的异常期间执行的,那么第一个异常将丢失。
C# 4 Language Specification § 8.9.5: If the finally block throws another exception, processing of the current exception is terminated.
关于c# - 如果 finally block 抛出异常会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2911215/