JS中try-catch代码块的应用场景
try-catch属于同步代码块,因此无法捕获异步(重新开辟的线程,例如定时器,异步请求)代码中的异常,即能被try-catch捕获的异常,必须是在报错时候,线程的执行进入了try-catch代码块时,才能被捕获异常。
代码
try{
setTimeout(()=>{//宏任务
a.b//无法捕获
},10)
new Promise((resolve,reject)=>{//微任务
a.b//无法捕获
//通常,promise的异常都是由reject以及Promise.prototype.catch来捕获的,Promise在执行回调中都用try-catch包裹了,错误被内部捕获,不会往上抛
})
function c(){
a.b
}
c()//捕获异常
}catch(e){
console.log('has error',e)
}本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!