与“How do exceptions work (behind the scenes) in C++”相同,但 C#。
我知道在抛出异常时必须执行以下步骤。
finally
块。.NET如何处理这些操作? “当前”处理程序的映射如何工作? try / catch块中发出了多少代码?在一个扔石块?
答案 0 :(得分:15)
阅读Christopher Brumme的文章;它详细解释了CLR异常处理中幕后发生的事情:
http://blogs.msdn.com/b/cbrumme/archive/2003/10/01/51524.aspx
答案 1 :(得分:4)
答案 2 :(得分:3)
.NET异常使用基础Windows结构化异常处理实现,但这不是 的要求。 Mono可能采用不同的方式。
事实上,如果你编写一个只抛出异常的单行Console应用程序,然后在Windbg中运行它,你就会看到非托管异常处理的钩子。