js异常捕获

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

常用的3种异常捕获方式

1、listener监听

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

特点:

  • 利用冒泡阶段的捕获,可以捕获到等标签的资源加载失败的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异常捕获)