2011-05-24 86 views
3

注:我指的是.NET 4版本的RX。.NET Reactive框架:ReplaySubject OnError:它爲什麼會拋出異常?

我一直在使用RX的ReplaySubject類。我將OnError作爲參數調用異常。

我在期待它會通知所有的OnError訂閱者,並將它們傳遞給它的異常,相反它只是引發異常,之後異常只是未處理。代碼很簡單,你可以看看GitHub上的代碼。 https://github.com/arielbh/CodeCommander/blob/master/CodeValue.CodeCommander/CommandBase.cs 117號線是OnNext呼叫。

有什麼想法嗎?顯然我希望我期望發生的行爲。 感謝

阿里爾

+0

對不起,我回答了,但後來看到你指的是.NET版本,而不是JavaScript版本,這使得我的答案無用。這就是爲什麼我刪除了我的答案。 – Christoph 2011-05-24 11:19:28

+0

感謝和抱歉。我會更清楚地說明這一點。 – ArielBH 2011-05-24 11:20:58

回答

0

我打這個奇怪的行爲了。我創建了自己的擴展方法來獲得我期待的行爲。

public static void SendOnError<T, E>(this IObserver<T> Subject, E ExceptionToSend) where E : Exception 
    { 
     try { Subject?.OnError(ExceptionToSend); } 
     catch (E exception) 
     { 
      Debug.WriteLine("One or more subscribers to the subject did not implement an OnError handler. Ignoring rethrown exception: " + exception.Message); 
     } 
    } 
相關問題