想在项目中增加一个捕捉全局的异常的处理。
各个组件中的方法中的异常,watch的异常都可以捕捉到。
官网提供了一个errorHandler,但是只能捕捉组件的渲染和观察期间未捕获错误。不能真实捕捉到下面的错误
TypeError: Cannot read property '0' of undefined
然后我使用window.onerror去处理也不能达到效果。在一个组件中的方法中出现异常后根本不触发这个事件。
请问各位有这种经验么
想在项目中增加一个捕捉全局的异常的处理。
各个组件中的方法中的异常,watch的异常都可以捕捉到。
官网提供了一个errorHandler,但是只能捕捉组件的渲染和观察期间未捕获错误。不能真实捕捉到下面的错误
TypeError: Cannot read property '0' of undefined
然后我使用window.onerror去处理也不能达到效果。在一个组件中的方法中出现异常后根本不触发这个事件。
请问各位有这种经验么
异常处理在框架内部显然是做了捕获的。
你所提出的常见 TypeError 多发生在对后端数据进行转换的处理阶段。捕获这类异常的方式可以是:
将数据处理代码拆分到独立的 JS 模块中,这样 Source Map 会有对应的错误定位。
将相应代码封装为独立的 Promise,在 Promise 中 catch 异常并提示。
全局的 window.onerror 一般只用于各种 hack 风格的调试,不建议在项目里直接使用。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
设置 Vue 的 cinfog 即可 :