Exception safety

Ensure that if one handler for an event is killed by an exception, others
still get a chance to run.