2011-05-24 54 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); 
     } 
    } 
相关问题