收集错误: 1.语法错误 (忽略,不能通过编译器) 2.Ajax请求异常 3.静态资源加载异常 4.Promise加载异常

捕获方法 1.try-catch

使用try-catch我们可以收集到语法错误和运行时错误,但需要注意的是,当我们捕获的代码块内部存在异步代码时就没法捕捉到error了(这个原因我觉得是和eventloop机制有关)

2.window.onerror

window.onerror就比较厉害了,它可以捕获同步和异步error,同时window.addEventListener('error',() => {}, true)的时候还可以监听资源请求错误

3.promise错误, async/await错误捕获

对于promise的错误我们一般是采用.catch的方式去监测,但是每个promise都要处理catch就很繁琐,有没有能统一处理的的方式呢?当然是有的,window.addEventListener("unhandledrejection", e=> {})

4.vue错误捕获

我们可以采用vue的全局错误捕获函数Vue.config.errorHandler,这样可以对vue抛出的错误全局捕获