与“How do exceptions work (behind the scenes) in C++”相同,但适用于 C#。
我知道抛出异常时必须执行以下步骤。
- 为异常类型找到最近的处理程序;
- 将堆栈展开到处理程序级别;
- 调用处理程序;
- 查找并调用每个
finally
block 。
.NET 如何处理这些操作? “当前”处理程序的映射如何工作? try/catch block 中发出了多少代码?在 throw block 中?
最佳答案
Windows 上的 .NET 异常使用操作系统的底层 Structured Exception Handling (SEH) 机制,与 native 代码相同。如 linked question for C (and C++) 中所列.
关于c# - 异常如何在 C# 中工作(在幕后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761446/