try {
await function1()
await function2()
await function3().catch(err => { /*...*/ })
} catch (err) { /*...*/ }
我的问题是,即使已经通过catch
“捕获”了该异常,function3
块是否也捕获了.catch(err => ...)
发出的异常?
如果catch
块捕获到function3
的异常,我的问题是如何防止这种行为?
我的目标基本上是捕获那些函数的特定异常,并对每个未处理的异常使用catch
块。
答案 0 :(得分:5)
一旦“发现”错误,它就不会传播。如果您希望错误进一步加剧,则必须在捕获到一次错误后抛出一些错误。像这样:
try {
await function1();
await function2();
await function3().catch(err => {
function3ErrorHandler(err);
throw err;
});
} catch (err) {
generalErrorHandler(err);
}
答案 1 :(得分:1)
如果您的外部方法中的catch块已经在function3
中捕获,则不会捕获fuction3
引发的异常。
答案 2 :(得分:1)