.NET Reactive框架:ReplaySubject OnError:为什么会引发异常?

| 注意:我指的是.NET 4版本的RX。 我一直在使用RX的ReplaySubject类。我正在调用带有错误作为参数的OnError。 我期望它会通知所有OnError订阅者,并将异常传递给他们,相反,它只是引发异常,此后该异常将不被处理。 代码非常简单,您可以在GitHub上查看代码。 https://github.com/arielbh/CodeCommander/blob/master/CodeValue.CodeCommander/CommandBase.cs 117行是OnNext调用。 有任何想法吗?显然我想要我期望的行为。 谢谢 爱丽儿     
已邀请:
好的,我找到了原因。 如果您未订阅OnError,则默认行为将引发异常。 我不够谨慎,因此没有观察到引发错误的主题。 更多信息: http://social.msdn.microsoft.com/Forums/en/rx/thread/3125094b-1ab2-4d01-8f44-fb68ef913f43     
我也遇到了这种奇怪的行为。我创建了自己的扩展方法来获得预期的行为。
    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);
        }
    }
    

要回复问题请先登录注册