繁体   English   中英

异步方法异常崩溃的应用程序

[英]Async method exception crashing application

我使用的第三方DLL提供了一种执行操作的异步方法。

我在try-catch块中运行此函数,但是-在禁用JustMyCode的情况下-我收到了源自第三方对象内部某处的错误,该错误只能在AppDomain.CurrentDomain.UnhandledException中处理,这会关闭该应用程序,并且一般化为处理这个的地方。

编码:

try { ResultObject result = await thirdPartyObject.MethodAsync(); }
catch { /* never get here */ }

通过反射对thirdPartyObject.MethodAsync()的签名:

public Task<ResultObject> MethodAsync();

遇到内部错误(仅在VS设置中禁用“仅我的代码”时可见),该错误进入System.Threading.Tasks.TaskCanceledException:“任务已取消。” ...

有没有办法在没有命中全局未处理异常处理程序的情况下拦截该任务取消?

有没有办法在没有命中全局未处理异常处理程序的情况下拦截该任务取消?

并非没有捕获第三方代码中的异常。 例如,如果第三方方法启动了一个新线程,或者它不等待一个新的Task ,并且在此后台线程上引发了异常,则它不会被catch子句代码catch

请参阅@Peter Torr的博客文章以获取更多信息和一些示例: https : //blogs.msdn.microsoft.com/ptorr/2014/12/10/async-exceptions-in-c/

您应该真正要求程序集的制造商修复其代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM