当前位置: 首页 > Web前端 > JavaScript

一篇文章处理前端错误捕获和上报

时间:2023-03-27 13:13:50 JavaScript

背景众所周知,几乎没有开发者可以做到100%无bug的开发,所以一旦我们的产品出现问题,急需快速定位问题所在问题。幸运的是,在我们的web场景中,Js运行异常不会导致JS引擎崩溃,最多只是终止当前正在执行的任务。然后一层层往上抛错误,类似于冒泡事件,遇到最新一层的catch就停止抛,如果中间没有错误处理catch,直到window对象结束。那么今天就和大家一起来探讨下如何在web场景中收集和上报异常错误数据。错误类型要获得比较完整的异常错误数据,首先要了解Web上常见的异常错误有哪些。js执行错误日常执行中常见的异常错误有五种:同步错误、语法错误、普通异步任务错误、Promise任务错误、异步任务错误。资源加载错误主要包括图片、脚本、css、字体等资源加载错误。错误捕获try...catch作为一名优秀的程序员,我们首先想到的可能是try...catch,那么我们直接上代码:因为资源加载标签一定不能在代码块中执行,所以不得捕获资源加载错误。根据上图的结果,我们可以总结出try...catch的处理能力:可以捕获包中的同步执行错误。无法捕获语法错误。无法捕获异步任务错误。无法捕获Promise任务错误。无法捕获资源加载错误。window.onerror我们的浏览器在window对象上也有一个onerror方法,需要额外注意:跨域脚本加载错误只有一个“Scripterror”,无法获取到错误信息。这可以通过向