2011-05-24 12 views
3

注:私はRXの.NET 4バージョンを指しています。.NET Reactive framework:ReplaySubject OnError:なぜ例外がスローされるのですか?

私はRXのReplaySubjectクラスを使用しています。 OnErrorをパラメータとして例外を指定して呼び出しています。

すべてのOnErrorサブスクライバに通知し、例外を渡すことを期待していました。代わりに例外がスローされ、その後例外が処理されなくなりました。

コードは非常に簡単ですが、GitHubのコードを見ることができます。 https://github.com/arielbh/CodeCommander/blob/master/CodeValue.CodeCommander/CommandBase.cs ライン117はOnNextコールです。

アイデアはありますか?明らかに私は起こることを期待している行動が欲しい。 おかげ

アリエル

+0

申し訳ありませんが、あなたは私の答えが役に立たないJavaScriptバージョンではなく、.NETバージョンを参照しています。だから私は私の答えを削除した。 – Christoph

+0

ありがとうと申し訳ありません。私はこれをより明確にするでしょう。 – ArielBH

答えて

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); 
     } 
    } 
関連する問題