我很好奇,如果在垃圾收集过程中在终结器方法中发生异常,.NET
内部会发生什么。堆和LOH的逻辑是否不同?任何人都可以提供详细的描述吗?
答案 0 :(得分:4)
没什么特别的。 CLR将检测异常并终止程序。
请注意,@ kmatyaszek链接的文章已经过时了。在终结器和工作线程中吞咽异常是一个.NET 1.x功能,导致了很多痛苦。当发生这种情况时,很难诊断程序停止正常运行的原因。 .NET 2.0结束了它,默认策略是始终终止程序。从技术上讲,可以由自定义CLR主机和app.exe.config文件中的<legacyUnhandledExceptionPolicy>
元素覆盖。除非你喜欢痛苦,否则不要使用它。