为什么需要捕获?
前端代码运行在客户端的浏览器里,当客户端(浏览器)出现任何问题,在没有错误日志的情况下,我们都是不知道问题发生在哪,我们只能依靠猜测或者自己不断尝试才知道,或者永远不知道问题。
客户端怎么捕获?
1.通过 window.onerror,可惜只能获得基础的 js 错误,Promise、async/await 里的错误无法捕获,它收到同源决策的影响
2.Promise 通过catch方法
3.async/await 通过 try - catch
4.Vue 可以通过全局 Vue.config.errorHandler 去获得非 Promise、async/await 里的错误,可以理解为 Vue 里的 window.onerror
