如何修复任务处理器OnOnobservedException Xamarin形式



我使用的是应用程序级taskobserveRErrorhandler。处理错过的错误。但是我正在使用尝试捕捉的原因,为什么我会得到这个例外。如何解决这个指导

AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException; TaskScheduler.UnobservedTaskException += TaskSchedulerOnUnobservedTaskException;

如下所述。

为了使开发人员更容易根据任务编写异步代码,.NET Framework 4.5更改了未观察到的异常的默认异常行为。尽管未观察到的异常仍然提高了未观察到的taskexcextion异常,但默认情况下该过程不会终止。从.NET Framework 4.5开始,您可以使用配置元素恢复为.NET Framework 4的行为并终止该过程:

 <configuration>   
   <runtime>   
      <ThrowUnobservedTaskExceptions enabled="false"/>
   </runtime>   
</configuration>  

您的任务之一是抛出未处理的异常,这就是为什么它以任务结束的原因。您要么必须找到抛出异常的位置,要么可以默默地忽略它(如果您知道自己在做什么(:只需设置观察到的异常即可。

private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
        {
            e.SetObserved();
            LogException(e.Exception as Exception);
        }

可悲的是,您不能为CurrentDomainNunHandledException做到这一点。当一个例外情况下,为时已晚,您的应用将被杀死,但至少您有机会记录问题。

相关内容

  • 没有找到相关文章

最新更新