Rx Subscrive OnError:如何标记异常为已处理



我如何将异常标记为已处理,以防止它在我的Silverlight应用程序中起泡到Application_UnhandledException处理程序?

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

更新:在我的应用程序中,它是一个RIA服务调用,所以也许MarkErrorAsHandled会解决这个问题。不幸的是,这个错误是在数据库端修复的,我没有设置重新创建它。

对于大多数异常,您应该可以在订阅时提供OnError处理程序。

然而,一些框架对异常处理应用了额外的要求。例如,RIA服务要求在完成回调中调用System.ServiceModel.DomainServices.Client.OperationBase.MarkErrorAsHandled()。如果没有调用,RIA服务将在回调完成后抛出异常。

这让我感到惊讶,因为您应该已经做了正确的事情来确保异常得到处理。你确定没有另一个接收OnError的订阅者吗?

相关内容

  • 没有找到相关文章

最新更新