Обработка ошибок с использованием Reactive Framework - PullRequest
0 голосов
/ 21 декабря 2011

Я разработал то, что по сути является прослушивателем с измененным свойством - то есть когда изменяется 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 => OnError(s)).

Однако я хотел проверить обработку исключений.Я изменил OnAChanged() метод, чтобы просто выдать новое исключение.Однако возникает исключение, и OnError никогда не вызывается, и мое приложение вылетает.Я неправильно понимаю использование OnError?

1 Ответ

1 голос
/ 21 декабря 2011

Вы неправильно понимаете OnError - OnError является свойством IObservable. IObservables, основанные на событиях, никогда не OnError (потому что нет такого понятия, как «исключение события» или что-то в этом роде). Если бы у вас был другой источник, например Observable.Start, вы могли бы увидеть OnError.

...