如何在ReactiveUI 9.3.5中全局处理异常?

时间:2018-12-03 09:58:35

标签: c# xamarin xamarin.android reactiveui

我最近升级到ReactiveUI 9.3.5,该文档建议通过RxApp.DefaultExceptionHandler全局处理错误:

// set at startup
RxApp.DefaultExceptionHandler = new GlobalErrorHandler();

public class GlobalErrorHandler : IObserver<Exception>
{
    public void OnNext(Exception error)
    {
        Debug.Write("An error occurred");
    }

    public void OnError(Exception error) { }

    public void OnCompleted() { }
}

当命令引发异常时,将按预期方式调用全局错误处理程序。

问题在于此后该应用仍会崩溃,并带有未处理的异常:

  // this crashes the app
  var command = ReactiveCommand.CreateFromTask(async () =>
        {
            throw new Exception();
        })
        .Execute()
        .Subscribe(x =>
        {                
            Debugger.Break();
        });

这是预期的行为吗?在全局范围内捕获和处理异常代码的方式是什么?

以前,我使用UserError来全局抛出和处理错误,但这已被淘汰。

0 个答案:

没有答案