首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改终结器策略

更改终结器策略
EN

Stack Overflow用户
提问于 2014-02-27 14:56:31
回答 1查看 145关注 0票数 1

我读到了关于微软的终结器的故事,发现了一个有趣的句子:

如果finally或finally的覆盖会引发异常,并且运行时不被覆盖默认策略的应用程序承载,则运行库将终止该进程,并且不会执行活动的try--最终块或终结器将被执行。

我在谷歌上搜索了如何更改默认策略,但我仍然感到困惑:

  • 他们在谈论默认安全策略吗?但我在那里找不到任何与终结者有关的东西。
  • 缓存策略似乎也不相关
  • 我不认为ASP密码策略会有帮助

微软在关于终结器的链接文章中提到的策略是什么?我怎么才能改变呢?对于当前正在执行的应用程序,是否可以以编程方式更改此策略?

注意:并不是说我想改变它以获得.NET 1.1终结器的行为。我只是好奇。当涉及到分析别人的bug时,了解这些细节总是很好的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-27 15:25:31

当他们讨论:

运行库不是由覆盖默认策略的应用程序承载的。

他们谈论的是一个非托管应用程序,它使用CLR托管接口托管CLR,并允许托管代码在其中运行。例如,请参见Server及其CLR集成

他们不是在谈论正在运行的托管应用程序可以更改的设置。

具体而言,请参见ICLRPolicyManager::SetUnhandledExceptionPolicy

指定发生未处理异常时公共语言运行库(CLR)的行为。

默认情况下,CLR是所有未处理异常的最终处理程序,其默认行为是删除进程。主机可以通过将策略值设置为eHostDeterminedPolicy来更改此行为。此值允许主机实现自己的默认行为,就像CLR的早期版本一样。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22072160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档