异步代码

对于异步代码(如回调函数、Promise),try...catch 无法直接捕获错误。这是因为异步操作是在回调函数中执行的,而回调函数是在事件循环的后续阶段运行的,超出了 try...catch 的作用域。

例如:

try {
  fs.readFile('file.txt', 'utf8', (err, data) => {
    if (err) throw err; // 这里的错误无法被外层的 try...catch 捕获
    console.log(data);
  });
} catch (e) {
  console.error("发生错误:", e.message); // 这里不会捕获到回调中的错误
}