使用响应式框架进行错误处理

本文关键字:错误 处理 框架 响应 | 更新日期: 2023-09-27 18:18:27

我已经设计了本质上是一个属性改变侦听器-即当实例。A发生变化,调用onchanged ()

Observable.FromEventPattern<PropertyChangedEventArgs>(Instance,"PropertyChanged")
          .Where(e => e.EventArgs.PropertyName == "A")
          .ObserveOn(Scheduler.ThreadPool)
          .Subscribe(search =>
              OnAChanged((PropertyChangedEventArgsEx)search.EventArgs), s =>
                  OnError(s)); 

这完全可以工作(没有s => OnError(s)部分)。

然而,我想测试异常处理。我修改了OnAChanged()方法,只是抛出一个新的异常。然而,异常被抛出,OnError从未被调用,我的应用程序崩溃。我是否误解了OnError的用法?

使用响应式框架进行错误处理

你误解了OnError - OnError是IObservable的一个属性。基于事件的IObservables永远不会OnError(因为没有"事件异常"之类的东西)。如果你有不同的来源,比如Observable。首先,你可以看到OnError.