【问题标题】:How to capture all the errors thrown in Vue.JS SPA如何捕获 Vue.JS SPA 中抛出的所有错误
【发布时间】:2017-07-06 19:08:32
【问题描述】:

我正在创建一个 webapp 并尝试捕获 vue.js webapp 中任何地方抛出的所有错误。

我正在查看errorHandler,但它只在渲染或观察者期间捕获错误,如上所述:

为组件渲染和观察期间未捕获的错误分配处理程序。处理程序被调用,带有错误和 Vue 实例。

question 得到提示,我编写了以下代码:

window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
 console.log('Inside window.onerror')
 console.log(errorMsg, ' ', url, ' ', lineNumber, ' ', column, ' ', errorObj)
 return false
}

window.addEventListener('error', function (e) {
 console.log('Inside error Listener', e.message)
})

以上都被调用,但我没有这些错误的任何细节。在所有情况下,我都将errorMessage 视为script error

有什么更好的方法来获取所有错误的详细信息并将其发送到某个集中的地方,例如sentry

【问题讨论】:

  • 你见过 log4javascript 吗?这可能满足您的需求
  • 有同样的问题。但我在控制台中没有得到任何东西。我在stackoverflow上找到了这个答案,它是关于未来的,但现在如何,可能会有帮助。 unhandledrejection event listener
  • 您可能会收到script error,因为这些错误发生在从不同来源加载的脚本中,并且不会报告它们的详细信息以防止信息泄露。您可以尝试为这些脚本配置 CORS 策略。查看developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/…的更多详细信息。

标签: javascript error-handling vuejs2 vue.js


【解决方案1】:

您在回答中提到了 Sentry,如果您的目标是在那里记录错误,那么您只需要添加 Raven.js 和 Vue 插件即可。

Sentry 在此处有相关文档:https://docs.sentry.io/clients/javascript/integrations/vue/

【讨论】:

    猜你喜欢
    • 2012-10-17
    • 1970-01-01
    • 2023-03-28
    • 2014-06-30
    • 2018-03-03
    • 2011-01-25
    • 2018-01-21
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多