可以通过为window对象设置onerror事件处理器来全局捕获大部分运行时的异常,包括同步和异步任务的异常(除了Promise异常)。使用方法如下:
window.onerror = function(message, source, lineno, colno, error) {
logger.log('捕获到异常:', { message, source, lineno, colno, error });
}
可以使用window.onerror事件处理器。这个方法可以监听并处理全局范围内的未被捕获的错误。以下是一个简单的示例
window.onerror = function(message, fileName, lineNumber, columnNumber, error) {
// message: 错误信息
// fileName: 发生错误的文件名
// lineNumber: 发生错误的行号
// columnNumber: 发生错误的列号(某些浏览器可能不支持)
// error: 错误对象(某些浏览器可能不支持)
console.error("发生了一个错误:", message, "在文件:", fileName, "行号:", lineNumber);
// 返回true可以阻止默认的错误处理行为(比如在控制台显示错误信息)
// 如果你希望仍然在控制台看到原始错误信息,可以返回false
return true;
};
但是window.onerror不能捕获到由Promise.reject()或async/await中未被捕获的reject错误,对于这些情况,需要使用process.on('unhandledRejection')在Node.js环境中,或者在浏览器环境中利用window.addEventListener('unhandledrejection', ...)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。