2011-11-30 51 views
2

如何將異常標記爲Handled以防止冒泡到Silverlight應用程序中的Application_UnhandledException處理程序?Rx Subscrive OnError:如何將異常標記爲Handled?

IObservable<someobject> obs; 

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

更新: 在我的應用程序,這是一個RIA服務調用,這樣也許會MarkErrorAsHandled已經解決了這個問題。不幸的是,這個錯誤在數據庫端得到修復,我沒有設置重新創建它。

+0

請提供異常詳細信息,包括異常類型和堆棧跟蹤。 –

回答

1

對於大多數例外情況,您應該在訂閱時提供一個OnError處理程序。

但是,一些框架對異常處理應用附加要求。例如,RIA Services要求在完成回調中調用System.ServiceModel.DomainServices.Client.OperationBase.MarkErrorAsHandled()。如果沒有調用,RIA服務將在回調完成後拋出異常。

0

這對我來說很令人驚訝,因爲您應該已經在做正確的事情來確保異常得到處理。你確定你沒有另外一個接收OnError的用戶嗎?