Peter Mols Peter Mols - 1 year ago 117
Javascript Question

Catch all unhandled javascript promise rejections

I would like to catch all unhandled exceptions/rejections that take place within a javascript Promise. Is there a good method for catching them without adding a

on each end of the Promise chain? (in case of forgetting to add this, the error silently disappears).

The developer console in Google Chrome can log them, I like to log them as well in a production environment.

For normal javascript exceptions I use the
function, but the errors from a Promise call this function.


window.onerror = function (e) {
alert("unhandled error: " + e);

var p = new Promise(function (resolve, reject) {
var nullObject = null;
// Raise a TypeError: Cannot read property 'forceNullError' of null
var x = nullObject.forceNullError();

p.then(function () { alert('success'); });


*) I noticed that WinJS has a
method for what I want, but Native Promises don't.

Answer Source

The whole world is waiting for the unhandledrejection and rejectionhandled events. As of March 2016, Chrome is now the first to support it.


window.addEventListener('unhandledrejection', function(event) {
    console.error('Unhandled rejection (promise: ', event.promise, ', reason: ', event.reason, ').');

Specification: HTML Living Standard

Mozilla Developer: onrejectionhandled, onunhandledrejection

Chromium Issues: 495801, 393913

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download