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执行时抛出的异常将无能为力
