try catch 捕获异常问题

2022-03-14  本文已影响0人  Asuler

try能捕获同步的异常,而异步的异常需要看情况

比如try catch里面只是发一些ajax或者timeout,这种是捕获不到的。
异步请求的异常,一般是在这个promise的catch里面捕获,不会被外层的try catch捕获到。
除非使用async,await的写法

async funcion A (){
 try{
   await xxxxx()
 }catch(){
   xxxxx
 }
}

await的promise的异常可以被try catch捕获

原因:
《深入浅出Nodejs》时,在第四章 - 异步编程中作者朴灵曾提到,异步编程的难点之一是异常处理,书中描述" 尝试对异步方法进行try/catch操作只能捕获当次事件循环内的异常,对call back执行时抛出的异常将无能为力

image.png
上一篇 下一篇

猜你喜欢

热点阅读