您可以使用unhandledRejection
事件来捕获所有来自Promise的拒绝。以下是一个示例代码:
process.on('unhandledRejection', (err, promise) => {
console.error('Unhandled Promise rejection:', err);
// 可以在这里进行错误处理或记录日志
});
// 示例1:未处理的拒绝
const promise1 = new Promise((resolve, reject) => {
reject(new Error('Promise rejection'));
});
// 示例2:已处理的拒绝
const promise2 = new Promise((resolve, reject) => {
reject(new Error('Promise rejection'));
}).catch((err) => {
console.error('Handled Promise rejection:', err);
});
// 示例3:未处理的拒绝,但在unhandledRejection事件中处理
const promise3 = new Promise((resolve, reject) => {
reject(new Error('Promise rejection'));
});
// 在这里添加其他Promise代码...
// 输出:
// Handled Promise rejection: Error: Promise rejection
// Unhandled Promise rejection: Error: Promise rejection
在上面的示例中,我们通过process.on('unhandledRejection')
方法添加了一个事件监听器,以捕获所有未处理的Promise拒绝。当有Promise被拒绝时,unhandledRejection
事件将被触发,并传递错误对象和被拒绝的Promise。在事件处理程序中,您可以选择进行错误处理或记录日志等操作。
请注意,unhandledRejection
事件只能在Node.js环境中使用,浏览器环境中没有这个事件。在浏览器中,您可以使用window.addEventListener('unhandledrejection')
来捕获未处理的Promise拒绝。
上一篇:捕获所有堆分配
下一篇:捕获所有PHP异常是最佳实践吗?