如果在终结器方法中发生异常,那么.NET中发生了什么(〜方法)

时间:2013-10-19 17:50:32

标签: c# .net exception

我很好奇,如果在垃圾收集过程中在终结器方法中发生异常,.NET内部会发生什么。堆和LOH的逻辑是否不同?任何人都可以提供详细的描述吗?

1 个答案:

答案 0 :(得分:4)

没什么特别的。 CLR将检测异常并终止程序。

请注意,@ kmatyaszek链接的文章已经过时了。在终结器和工作线程中吞咽异常是一个.NET 1.x功能,导致了很多痛苦。当发生这种情况时,很难诊断程序停止正常运行的原因。 .NET 2.0结束了它,默认策略是始终终止程序。从技术上讲,可以由自定义CLR主机和app.exe.config文件中的<legacyUnhandledExceptionPolicy>元素覆盖。除非你喜欢痛苦,否则不要使用它。