相关疑难解决方法(0)

我可以阻止其他AppDomain中的未捕获异常关闭应用程序吗?

我遇到了一个行为不端的库,它在终结器中抛出异常,这当然会导致应用程序崩溃.

为了避免这种情况,我尝试在自己的AppDomain中加载库,但异常仍然会冒泡到表面并导致应用程序崩溃.

正如在MSDN上记录的AppDomain.UnhandledException那样,注册不会阻止异常冒泡,但我很惊讶没有其他方法可以在"子AppDomain"中捕获这样的异常.

插件主机或使用AppDomains的应用程序如何沙箱化可能有害的代码,如何阻止未处理的异常?它实际上可能吗?

注意:我已经有了另一种解决方法,就是这里描述的解决方法.错误的终结器位于一个长期存在的对象上,似乎只在关闭期间收集,因此足以隐藏用户的这种"虚假"错误.尽管如此,我发现这种解决方法很脆弱,因为它会隐藏其他真正的错误,或者如果先前收集了对象,则可能会炸毁我的应用程序.

.net exception-handling appdomain finalizer

8
推荐指数
1
解决办法
1288
查看次数

标签 统计

.net ×1

appdomain ×1

exception-handling ×1

finalizer ×1