c# - 如果 finally block 抛出异常会怎样?

标签 c# exception exception-handling try-catch-finally

如果 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/

相关文章:

c# - 允许使用 AES 256 为 HMAC 解密任何数据

c# - 在我的 MVC 3 .NET 应用程序中,如何在网站启动时更改地址栏中的 URL?

c++ - 从异常中恢复上下文

尝试设置值 jms/Topic 时出现异常 null

exception-handling - 未找到 noticeError 方法。使用 Coldbox 和 NewRelic 进行错误跟踪时

c# - 如何在异常过滤器 Asp.Net Core 中获取模型对象?

c# - 如何限制 FFMpeg CPU 使用率?

c# - 从自定义类对象列表中获取那些元素,这些元素的一个属性值可解析为 double

java - JasperReport-锁定虚拟化上下文时中断

c# - 如何在异常中打印完整的堆栈跟踪?