Create and implement events and callbacks

You are using a multicast delegate with multiple subscribers. You want to make sure that all subscribers are notified, even if an exception is thrown. What do you do?

Nothing. This is the default behavior.
Manually raise the events by using GetInvocationList.
Let subscribers return true or false instead of throwing an exception.
Wrap the raising of the event in a try/catch.