process.on('uncaughtException', (err, origin) =>
{
console.log('catch: ' + err.message + ' | ' + origin);
console.log();
});
examplePromise();
function examplePromise()
{
return Promise.reject('Test');
}
According to the documentation default node handling should be overwritten by this callback with unhandledRejection origin
(node:14784) UnhandledPromiseRejectionWarning: Test
(node:14784) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:14784) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
I think that is probably an error that documentation and origin variable suggests that uncaughtException can handle promises when we have unhandledRejection event.
You have an unhandled rejection, not an uncaught exception. They aren't the same thing. You could try looking into the --unhandled-rejections CLI flag though. The strict mode should do what you want.
FWIW, I just read through the docs, and I agree that they are confusing in this regard.
I see that this issue is inactive so to work on any fix the more information are needed:
unhandledRejection (origin argument) and unhandledRejection (event)@MrBartusek I opened #33530 to improve the documentation. Does that clarify the origin argument and the purpose of it?
@BridgeAR Yes! That clarifies everything, thanks
Most helpful comment
FWIW, I just read through the docs, and I agree that they are confusing in this regard.