public void Emitting_Should_not_invoke_handler_of_failing_observer_When_using_catch_and_a_more_generic_exception_is_thrown() { var failingCatchWasInvoked = false; var failingExHandlerWasInvoked = false; var nonFailingCatchWasInvoked = false; var nonFailingExHandlerWasInvoked = false; UnitUnderTest.Catch((NotSupportedException ex) => failingCatchWasInvoked = true).Subscribe( ev => throw new Exception("I FAILED!"), ex => failingExHandlerWasInvoked = true); UnitUnderTest.Catch((NotSupportedException ex) => nonFailingCatchWasInvoked = true).Subscribe( ev => { }, ex => nonFailingExHandlerWasInvoked = true); UnitUnderTest.Emit(Mock.Of <Data>()); failingCatchWasInvoked.Should().BeFalse(); failingExHandlerWasInvoked.Should().BeFalse(); nonFailingCatchWasInvoked.Should().BeFalse(); nonFailingExHandlerWasInvoked.Should().BeFalse(); }