如何管理 JavaScript 中的 "uncaught exceptions" 以便在用户界面中显示错误消息?

How to manage "uncaught exceptions" in JavaScript in order to show the error message in the user interface?

当某些网站或 Web 应用程序抛出未捕获的异常时,每个浏览器的 Develper 工具中都会出现错误

例如,在Electron中,如果一个未捕获的异常,开发者可以设置一个侦听器并根据错误信息做任何我想做的事情:

process.on('uncaughtException', function (error) {
    // Handle the error
}

所以,我想知道在 JavaScript 中是否有一种简单的方法可以做到这一点。这可能有助于记录和存储用户工作时的常见错误,或者为了向用户显示发生的事情,用户可以向开发人员发送反馈。

可以改为显示类似的内容

有时,如果发生错误,应用程序会处于不稳定状态,一切都被冻结,用户不知道为什么。我认为告知错误很重要。

我找到了这个 Error JavaScript 对象。可以手动抛出,但只能在使用trycatch时使用,不能用于未捕获的异常,开发人员犯了一些错误。

try {
  // YOUR CODE GOES HERE
} catch (e) {
 if ( e instanceof CustomExceptionError ) {
    // ...
  } else if ( e instanceof OtherExceptionError ) {
    // ...
  } else {
    // ...
  }
 //OR CALL THE ALERT BOX OR ANY OTHER UI CHANGE
}

您可以将其作为 window 对象上的事件侦听器来处理。

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) { ... })

您可以在 MDN web docs here and the onerror event on the docs here

上阅读有关 unhandledrejection 活动的更多信息