Description
One big issue with exception handling in JavaScript is Promises: When you don't explicitly handle an error using a rejection callback, most Promise libraries provide global events like Promise.onPossiblyUnhandledRejection
(bluebird.js), Q.getUnhandledReasons
(Q.js) or process.on('unhandledRejection)
(Node.js). Not subscribing to those events when using Promises probably contributes to many programmer errors staying unnoticed, as the application won't neccessarily terminate.
It would be cool if Exceptionless.js checked for the existence of such modules and events and created handlers that automatically submit the exceptions. While we do that, we should refactor all global exception handlers into implementations of an interface that can be added to the configuration like plugins.
Name proposals:
- IGlobalExceptionHandler
- IExceptionHook
- IExceptionSource