2013-10-19 121 views
5

我很好奇,到底发生了什么里面.NET,如果异常的释放方法的垃圾收集过程中发生了异常。堆和LOH的逻辑不同吗?有谁能提供详细的描述吗?在.NET中发生了什么事如果发生在释放方法(〜法)

+2

请检查这篇文章(部分:Finalizers和异常):http://msdn.microsoft.com/en-us/library/aa302312.aspx – kmatyaszek

+0

谢谢,我会检查它,如果它会没有好的答案,会试图回答自己。 – Ph0en1x

回答

4

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

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

相关问题