TAP全局异常处理程序此代码抛出异常。是否可以定义将捕获它的应用程序全局处理程序?string x = await DoSomethingAsync();使用.net 4.5 / WPF
3 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
将事件绑定到AppDomain.CurrentDomain.FirstChanceException
将保证您将捕获您的异常。正如@Noseratio指出的那样,即使在catch块中正常处理异常并且应用程序继续执行,您也会收到应用程序中的每个异常的通知。
但是,我仍然看到此事件对于至少捕获应用程序暂停之前抛出的最后几个异常或者某些其他调试方案非常有用。
如果你想保护自己免受这种伤害
string x = await DoSomethingAsync();
我给你的建议是,不要这样做,添加一个try catch块:-)
手掌心
TA贡献1942条经验 获得超3个赞
在.NET 4.5 async
代码中,您可以通过注册TaskScheduler.UnobservedTaskException
事件的处理程序来处理未观察到的异常。如果您不访问属性而您没有调用Task.Result
,则认为异常未被观察到。Task.Exception
Task.Wait
在未观察到的异常到达TaskScheduler.UnobservedTaskException
事件处理程序之后,默认行为是吞下此异常,以便程序不会崩溃。可以通过添加以下内容在配置文件中更改此行为:
<configuration> <runtime> <ThrowUnobservedTaskExceptions enabled="true"/> </runtime> </configuration>
- 3 回答
- 0 关注
- 354 浏览
添加回答
举报
0/150
提交
取消