async/await 函数到底要不要加 try catch ?

752 阅读1分钟

建议在使用 async/await 函数时,加上 try...catch 块来捕捉异步操作中的错误。

当异步操作中出现错误时,如果没有添加 try...catch 块,错误将被传递到调用 async/await 函数的代码中,这可能会导致应用程序崩溃。如果使用 try...catch 块捕获异步操作中的错误,可以更好地处理错误,避免应用程序崩溃。

下面是一个使用 async/awaittry...catch 的示例:

async function fetchData() {
  try {
    const response = await fetch('https://example.com/data');
    const data = await response.json();
    return data;
  } catch (error) {
    console.error(error);
    throw new Error('Failed to fetch data');
  }
}

// 在另一个函数中调用 fetchData()
async function anotherFunction() {
  try {
    const data = await fetchData();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

在这个示例中,fetchData() 函数用 try...catch 块来捕获在异步操作中可能出现的错误,如果捕获到错误,则会使用 throw 语句抛出新的错误,从而使调用方可以更好地处理错误。在调用 fetchData() 函数的另一个函数中,同样使用 try...catch 块来处理可能出现的错误。

总的来说,虽然在使用 async/await 函数时可以不加 try...catch 块,但是加上 try...catch 块可以更好地处理错误,避免应用程序崩溃。