• 前端异常分类、捕获、监控


    1.异常分类,大致可以分为以下三类

     运行时异常:如使用接口未返回的数据、数组下标取值不存在的情况

     静态资源加载异常:如图片、css等文件加载错误

     异步请求错误:promise请求接口未做catch处理

    2.异常捕获

     运行时异常捕获:window.onerror = function(message,source,line,colno,error) {} ,只要是js运行错误都会触发onerror

     静态资源加载异常捕获:这类异常不能通过window.onerror捕获到,但是可以通过window.addEventListener("error",(e)=>{},false)捕获,需要强调的是第三个参数为true时也可以捕获运行时错误,第三个参数false表示事件冒泡模式(默认),true表示事件捕获模式

     异步请求错误:一般的promise请求都会写catch体,如果忘写了可以通过window.addEventListener("onhandledrejecte",(e)=> {})捕获所有的异步请求异常

    3.异常监控

     通过以上分类,当捕获到异常时,调用异常上报接口实现异常监控。需要注意的是不同的异常对象信息并不一致,需要分析具体的异常信息上报给接口。

    4.其它异常补充

     a. Vue项目异常监控:在mian.js中通过Vue.config.errorHandler捕获,可以拿到具体的this信息,基本能覆盖大多数场景。

     b. Iframe现在基本上很少使用所以没有在上述分类中,如果有使用iframe如果同域直接加上onerr即可,不同域则使用postMessage传递。

    5.异常上报方式

     a.通过ajax发送数据:对上报接口有跨域限制

     b.通过动态创建Image标签方式,通过请求一张1px*1px的gif图后面拼接上报数据的方式:通过图片的src属性请求,避免了跨域问题,更通用

      

  • 相关阅读:
    基于物品的协同过滤推荐算法
    监督学习与非监督学习的区别
    深入了解当前ETL的一些基本技术
    基于hadoop的图书推荐
    基于KNN的相关内容推荐
    KNN算法的补充
    Confluence 6 升级中的一些常见问题
    Confluence 6 升级以后
    Confluence 6 在升级之前
    Windows 独立启动方式安装 Archiva
  • 原文地址:https://www.cnblogs.com/zifayin/p/15976513.html
Copyright © 2020-2023  润新知