溫馨提示×

如何在try catch中捕獲異步錯誤

小樊
106
2024-06-17 20:04:57
欄目: 編程語言

在try catch中捕獲異步錯誤有一點特殊之處,因為異步操作是在當前代碼塊之外執(zhí)行的。通常情況下,異步操作會返回一個Promise對象,可以使用Promise的catch方法來捕獲異步操作的錯誤。

以下是一個例子,演示如何在try catch中捕獲異步錯誤:

try {
  asyncFunction().then(result => {
    console.log(result);
  }).catch(error => {
    console.error(error);
  });
} catch (error) {
  console.error('Caught error in try catch:', error);
}

async function asyncFunction() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject(new Error('Async error'));
    }, 1000);
  });
}

在上面的例子中,我們首先在try塊中調(diào)用了一個返回Promise對象的異步函數(shù)asyncFunction()。在該函數(shù)中,我們使用setTimeout模擬一個異步操作,并在1秒后reject一個錯誤。在then方法中,我們打印了結(jié)果,而在catch方法中,我們捕獲了錯誤。

需要注意的是,try catch只能捕獲同步代碼塊中的錯誤,對于異步代碼塊中的錯誤,需要使用Promise的catch方法或async/await來捕獲。

0