问题很简单,但我没有在任何地方找到答案。
我什么时候应该使用try catch?在下面的代码中我使用try catch来处理请求的返回:
async findUsers() {
this.loading = true;
try {
const [users, count] = await this.api.get('/users/list');
this.users = users;
this.totalPages = Math.ceil(parseInt(count) / 10);
}
catch (error) {
this.Messages.requestFailed(error);
}
finally {
this.loading = false;
}
}
使用 then(...).catch(...) 会是一个 好的做法吗?
区别在于你如何传递 Promise。
如果您使用
await
来处理 Promise,那么您可以将其包装在 try/catch
中。将 await
视为一种使异步操作在语义上类似于同步操作的方法(至少在等待它的函数的上下文中,尽管消耗代码)。
但是,如果您不使用
await
,而是通过附加 .then()
来处理 Promise,那么您可以将 .catch()
附加到该链以捕获异步操作中的失败。
因为如果不等待该操作,则
try/catch
不会捕获异步操作中发生的异常。
当您使用 Promise(异步操作)时,您需要在发生错误时处理异常。所以在这种情况下你可以使用 .then().catch(err) {}
当你有同步代码时,使用 try/catch 进行异常处理。