Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
90
rated 0 times [  91] [ 1]  / answers: 1 / hits: 30366  / 9 Years ago, fri, july 17, 2015, 12:00:00

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 .catch(..) 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 window.onerror function, but the errors from a Promise call this function.



Example:



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();
resolve();
});

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


JSFiddle: https://jsfiddle.net/f7zwej6L/



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


More From » es6-promise

 Answers
25

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



Example:



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


[#65773] Wednesday, July 15, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kyla

Total Points: 77
Total Questions: 108
Total Answers: 111

Location: Grenada
Member since Mon, May 8, 2023
1 Year ago
;