美文网首页
js异常捕获

js异常捕获

作者: 踩坑怪At芬达 | 来源:发表于2020-01-08 15:12 被阅读0次

    如果觉得还有点用,请您给我一个赞!您的赞是我坚持下去的动力

    常用的3种异常捕获方式

    1、listener监听

    window.addEventListener('error',(e)=>{
    })
    window.addEventListener('error',(e)=>{
      //可以捕获<img>标签资源加载失败
    },true)
    

    特点:

    • 利用冒泡阶段的捕获,可以捕获到<img>等标签的资源加载失败的onerror事件
    • 捕获顺序优先级高于 window.onerror ,也就是异常会先进入listener内,然后再进入到window.onerror
    • 如果在处理完事件,不想window.onerror或其他listener捕获的话,使用 stopImmediatePropagation()来拦截

    2、全局onerror

    window.onerror=function(e){
    }
    

    3、try-catch

    try{
      return 1;
    }catch(e){
      return 2;
    }finally{
      return 3;
    }
      return 4;
    

    特点:

    • try{}内的异常会被catch{}部分捕获,不会继续被window.onerrorlistener捕获
    • finally{}内的异常会直接被Listernwindow.onerror捕获,不会被自己的catch{}捕获
    • catch{}块内产生新的异常,将不会被任何东西捕获
    • 关于这几个return
      • 当有finally{}的时候,如果finally{}内没有产生新的异常则return 3,如果产生了异常则不会return而是中断了.
      • 当没有finally{}的时候,如果进入了catch{}return 2,不然则return 1
      • return 4不会被执行到

    4、监听unhandledrejection

    window.addEventListener('unhandledrejection',(e)=>{
    })
    

    特点:

    • 用于监听Promise内产生未被catch的异常
    • Promise在catch自己的异常中产生的新异常也将被捕获

    如果觉得还有点用,请您给我一个赞!您的赞是我坚持下去的动力

    相关文章

      网友评论

          本文标题:js异常捕获

          本文链接:https://www.haomeiwen.com/subject/idhsactx.html