public void CreateAndRaise4() { Pub4 p = new Pub4(); p.OnChange += (sender, e) => Console.WriteLine("Subscriber 1 called"); p.OnChange += (sender, e) => { throw new Exception(); }; p.OnChange += (sender, e) => Console.WriteLine("Subscriber 3 called"); // This subscriber is never called, since exception thrown for previous sender. p.Raise(); }
private void EventsWithExceptions() { Console.WriteLine("Events in which subscriber raises an exception"); Pub4 pub = new Pub4(); pub.OnChange += (sender, e) => Console.WriteLine("Subscriber 1 is called"); pub.OnChange += (sender, e) => { throw new Exception(); }; pub.OnChange += (sender, e) => Console.WriteLine("Subscriber 2 is called"); pub.Raise(); Console.WriteLine("Once the exception is riased by the subscriber none of the remaining handlers are called"); }