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.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…