At the moment, if you have an
EventEmitter, and it has an unhandled exception, it terminates the
node process with an error message. This makes dealing with exceptions in nested event handlers very difficult, since there’s no containing scope other than the closure created for the callback.
I propose keeping track of the ‘current’
EventEmitter in each event handler, snagging a reference to the parent event handler (which should be available on the stack at the time the
EventEmitter is created), and emitting an
error event on the parent
EventEmitter with the exception, passing it ‘upward’, yet in an asynchronous fashion.