js异常捕获

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

常用的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自己的异常中产生的新异常也将被捕获

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容