Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Promises: Unhandled rejections #32

Closed
frankebersoll opened this issue Oct 11, 2015 · 2 comments
Closed

Promises: Unhandled rejections #32

frankebersoll opened this issue Oct 11, 2015 · 2 comments
Assignees

Comments

@frankebersoll
Copy link
Contributor

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
@ejsmith
Copy link
Member

ejsmith commented Oct 11, 2015

Seems like this can just be plugins for each technology. So you would wire up to Promise.onPossiblyUnhandledRejection and then submit the event from inside the handler. We are already doing something very similar here:

https://github.com/exceptionless/Exceptionless.JavaScript/blob/master/src/integrations/angular.ts

@niemyjski
Copy link
Member

The 2.0 client had support for unhandled rejections but I added an example and uncovered a few issues around types... you can reject anything. We now properly handle converting unknown types to error objects.

@niemyjski niemyjski added the bug label Feb 22, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Development

No branches or pull requests

3 participants