【问题标题】:Error Handling using the Reactive Framework使用反应式框架的错误处理
【发布时间】:2011-12-21 18:13:14
【问题描述】:

我设计了一个本质上是属性改变的监听器——即当 Instance.A 发生变化时,调用 OnAChanged()

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

这工作得很好(没有s =&gt; OnError(s) 部分)。

但是,我想测试异常处理。我通过OnAChanged() 方法修改为只抛出一个新异常。但是,异常被抛出,OnError 永远不会被调用,我的应用程序崩溃了。我是不是误解了OnError的用法?

【问题讨论】:

    标签: c# .net system.reactive onerror


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的帮助。我只拥有一堆 FromEventPatterns 是否正确,每个 FromEventPatterns 都侦听不同的属性更改?还是有更好的做法可以坚持?我基本上只是想实现观察者模式。
    • 你可以这样做,当然 - ReactiveUI 让这变得更容易,它是一个明确设计用于与 Rx 一起工作的 MVVM 框架
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    相关资源
    最近更新 更多