代码的错误监控

250 阅读1分钟
  • 如何监测JS错误 如何保证产品质量

错误的分类

即时运行错误:代码错误

资源加载错误

错误的捕获方式

即时运行错误的捕获方式

  1. try-catch:
  2. window.onerror:只能捕获代码错误,不能捕获资源加载错误,因为资源加载错误不会冒泡

资源加载错误

  1. object.onerror:不会冒泡,只会触发标签本身的错误
img.onerror
script.onerror
  1. 高级浏览器的performance对象:performance.getEntries()
performance.geEntries().forEach(item=>{console.log(item.name)})
  1. Error事件捕获阶段获取标签错误:虽然不会冒泡但是没有阻止捕获
window.addEventListener('error',function(e){
    console.log('捕获',e)
},true)

跨域的js的运行错误可以捕获吗,错误提示是什么,怎么处理?

跨域的js可以捕获到,错误提示都是Script error

可以拿到错误信息的方法

  1. 客户端:在<script>标签增加crossorigin属性
  2. 服务器:设置js的响应头Access-Control-Allow-Origin:*

上报错误的基本原理

  1. 采用Ajax通信
  2. 利用Image对象进行上报
(new Image()).src = 'http://someUrl.com'