发生的异常被catch捕获到之后,执行完catch中的代码后,还是会继续执行.then中的代码。
如果想要阻止后续代码继续执行,可以使用 throw new Error 向外抛出错误,或者使用promise的reject()。
注:
1、正常执行的代码如果第一句出现异常,就不会执行第二句以及后面的所有正常代码
2、对于 try catch finally而言,无论是否出现异常,异常是否被catch捕获,finally中的代码都会被执行,即使 try 或者 catch 中有 return 语句,finally 中的代码还是会执行,finally 执行完后,如果try中的异常被catch捕获,就会继续执行try catch外面的其他无关代码,如果没有被捕获,就会继续向外抛出异常,即中断执行后续所有代码。
如下所示:
try{
//正常执行的代码
}catch (e){
//出错后执行的代码
}finally{
//无论正常执行还是出错,之后都会执行的代码
}
//跟上面try catch无关的代码
.then写在.catch之后,发生异常后.then中的代码是否还会执行
原文:https://www.cnblogs.com/upward-lalala/p/14752919.html