5

我很好奇,.NET如果在垃圾收集过程中终结器方法中发生异常,内部到底发生了什么。堆和 LOH 的逻辑是否不同?谁能提供详细的描述?

4

1 回答 1

4

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

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

于 2013-10-19T18:14:06.047 回答