vuejs2.0中全局的异常和错误捕捉处理

想在项目中增加一个捕捉全局的异常的处理。
各个组件中的方法中的异常,watch的异常都可以捕捉到。
官网提供了一个errorHandler,但是只能捕捉组件的渲染和观察期间未捕获错误。不能真实捕捉到下面的错误

TypeError: Cannot read property '0' of undefined

然后我使用window.onerror去处理也不能达到效果。在一个组件中的方法中出现异常后根本不触发这个事件。
请问各位有这种经验么

阅读 9.4k
3 个回答

设置 Vue 的 cinfog 即可 :

// 默认抛出错误
// https://zhuanlan.zhihu.com/p/37447164
Vue.config.errorHandler = function(err, vm) {
  console.error(err)
}

异常处理在框架内部显然是做了捕获的。

你所提出的常见 TypeError 多发生在对后端数据进行转换的处理阶段。捕获这类异常的方式可以是:

  1. 将数据处理代码拆分到独立的 JS 模块中,这样 Source Map 会有对应的错误定位。

  2. 将相应代码封装为独立的 Promise,在 Promise 中 catch 异常并提示。

全局的 window.onerror 一般只用于各种 hack 风格的调试,不建议在项目里直接使用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题