当某些网站或 Web 应用程序中抛出未捕获的异常时,每个浏览器的开发者工具中都会出现错误
In Electron https://github.com/electron/electron/issues/2479#issuecomment-130307655例如,如果出现未捕获的异常,开发人员可以设置一个侦听器并根据错误消息执行我想要的操作:
process.on('uncaughtException', function (error) {
// Handle the error
}
所以,我想知道是否有一种简单的方法可以在 JavaScript 中执行相同的操作。这对于记录和存储用户工作时的常见错误,或者向用户显示发生的情况非常有用,用户可以向开发人员发送反馈。
可以显示这样的东西
有时,如果发生错误,应用程序会处于不稳定状态,所有内容都被冻结,而用户不知道原因。我认为告知错误很重要。
我找到了这个Error https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ErrorJavaScript 对象。它可以手动抛出,但只能在以下情况下使用:try
and catch
被使用,而不是用于未捕获的异常,即开发人员犯了一些错误。
您可以将其作为窗口对象上的事件侦听器进行处理。
window.onunhandledrejection = event => {
console.warn(`UNHANDLED PROMISE REJECTION: ${event.reason}`);
};
window.onerror = function(message, source, lineNumber, colno, error) {
console.warn(`UNHANDLED ERROR: ${error.stack}`);
};
或者也可以这样:
window.addEventListener('error', function(event) { ... })
您可以阅读更多有关unhandledrejection
事件于MDN 网络文档在这里 https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event和onerror
事件于文档在这里 https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)