catch块是否在JavaScript中捕获已捕获的异常?

catch块是否在JavaScript中捕获已捕获的异常?,javascript,error-handling,try-catch,Javascript,Error Handling,Try Catch,我的问题是,catch块是否捕获了function3发出的异常,即使该异常已经通过.catcherr=> 如果catch块捕获到function3中的异常,我的问题是如何防止这种行为 我的目标基本上是捕捉这些函数的特定异常,并对每个未处理的异常使用catch块。一旦捕捉到错误,它将不会传播。如果你想让它进一步上升,你需要在捕捉到错误后抛出一些东西。比如: try { await function1() await function2() await function3()

我的问题是,catch块是否捕获了function3发出的异常,即使该异常已经通过.catcherr=>

如果catch块捕获到function3中的异常,我的问题是如何防止这种行为


我的目标基本上是捕捉这些函数的特定异常,并对每个未处理的异常使用catch块。

一旦捕捉到错误,它将不会传播。如果你想让它进一步上升,你需要在捕捉到错误后抛出一些东西。比如:

try {
    await function1()
    await function2()
    await function3().catch(err => { /*...*/ })
} catch (err) { /*...*/ }

外部方法中的catch块将不会捕获从function3抛出的异常,如果它已在function3中捕获

它将首先触发:

try {
  await function1();
  await function2();
  await function3().catch(err => {
    function3ErrorHandler(err);
    throw err;
  });
} catch (err) {
  generalErrorHandler(err);
}
触发前:

await function3().catch(err => { /*...*/ }) 

引发异常的方法将转到最近的异常捕获块。为什么不试试呢?异步的捕获返回一个承诺。wait是异步函数,而不是Promise。
} catch (err) { /*...*/ }