前端错误处理(转)

前端异常处理:

错误类型:

1.运行时错误    window.onerror

2.资源加载错误. window.addeventlistner(‘error’)       element.onerror

3.异步请求异常  封装XMLHtpprequest的send方法

4.promise异常   window.addEventListener(‘unhandledrejection’,function(event){})

 

 对于跨域脚本,语法错误的细节不会报告,代之以 “Script error”

 为了获取跨域脚本的错误信息,需要 1. 在script标签上加crossorigin属性 2.服务端响应头设置access-control-allow-origin:*

  

 

 

 

 =====================================================================

对应解决方法

 

1.JavaScript运行时错误(包括语法错误)发生时,window会触发一个ErrorEvent接口的事件,并执行window.onerror()

 

2. 

   (1) 当一项资源(如<img><script>)加载失败,加载资源的元素会触发一个Event接口的error事件,并执行该元素上的onerror()处理函数。

          element.onerror = function(event) { ..

 

   (2)资源加载失败,不会冒泡,但是会被addEventListener捕获,所以我们可以指定在加载失败事件的捕获阶段捕获该错误

          window.addEventListener("error", function(e) {

 

3.  封装XMLHttpRequest 覆写请求接口对象

  var xmlhttp = window.XMLHttpRequest;

  var _oldSend = xmlhttp.prototype.send;

  xmlhttp.prototype.send = function () {

      if (this['addEventListener']) {

          this['addEventListener']('error', _handleEvent);

  

4. 最新的规范中定义了 unhandledrejection事件用于全局捕获promise对象没有rejection处理器时异常情况。

       window.addEventListener("unhandledrejection", function (event) {

posted @ 2020-06-15 13:55  hh9515  阅读(375)  评论(0)    收藏  举报