c#finalizer抛出exception?
从MSDN引用:
如果Finalize或Finalize的覆盖引发exception,则运行时将忽略该exception,终止该Finalize方法,并继续完成最终化过程。
但如果我有:
~Person() { throw new Exception("meh"); }
然后它会导致运行时exception?
ps我知道这绝不会发生,但我只是对这种行为感到好奇。 我们的一个客户有一个空的尝试捕获他们的所有终结器..它甚至没有记录出错或重新对象:/
链接报价来源非常重要。 我不得不假设它谈论的是旧版本的.NET,可能是版本1.x. 它试图对未处理的exception进行“宽容”,吞没它们没有发出吱吱声。 这种方法效果不佳,默认无效的代码块非常难以调试。
.NET 2.0版本结束了这一点,默认的CLR主机终止了应用程序的任何未处理的exception。 终结者中的例外是致命的。
上述就是C#学习教程:c#finalizer抛出exception?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/958657.html