Rx Subscrive OnError: как пометить исключение как обработанное? - PullRequest
2 голосов
/ 30 ноября 2011

Как я могу пометить исключение как Обработанное, чтобы он не всплывал до обработчика Application_UnhandledException в моем приложении Silverlight?

 IObservable<someobject> obs;

 obs.Subscribe( onnext => { }, ex =>
 {
    //error!  how can I mark it as handled?
    System.Windows.MessageBox.Show( ex.Message );
 } );

Обновление: В моем приложении это была RIAСлужбы вызывают, поэтому, возможно, MarkErrorAsHandled решил бы проблему.К сожалению, ошибка была исправлена ​​на стороне базы данных, и я не настроен для ее воссоздания.

Ответы [ 2 ]

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

Для большинства исключений у вас должно быть все в порядке с предоставлением обработчика OnError при подписке.

Однако некоторые платформы применяют дополнительные требования к обработке исключений. Например, службы RIA требуют, чтобы System.ServiceModel.DomainServices.Client.OperationBase.MarkErrorAsHandled() вызывался в обратном вызове завершения. Если он не вызывается, службы RIA выдают исключение после завершения обратного вызова.

0 голосов
/ 01 декабря 2011

Это удивительно для меня, так как вы уже должны делать правильные вещи, чтобы убедиться, что исключение обработано. Вы уверены, что у вас нет другого подписчика, который также получает OnError?

...