1、使用 .catch() 捕获异常
特定
- 能捕获 Promise 执行中的任何错误,包括显式调用reject()和代码抛出的异常
- 必须在 Promise 链的末尾调用 .catch() 以确保错误不会被忽略
1 | new Promise((resolve, reject) => { |
2、在 .then() 的第二个参数中捕获错误
特定
- 能捕获 Promise 的错误,但无法捕获链中后续的错误
- 不如 .catch() 语义明确,推荐使用 .catch()
1 | new Promise((resolve, reject) => { |
3、使用 try…catch 包裹 async/await
特定
- 适合处理复杂的异步操作
- 必须确保所有 await 调用都在 try…catch 中
1 | async function fetchData() { |
4、封装统一的错误处理逻辑
特定
- 避免大量重复的 try…catch
- 返回统一的结果格式,便于处理
1 | function handlePromise(promise) { |
5、总结
- 优先使用 .catch() 在 Promise 链末尾捕获错误
- 对于复杂的异步操作,结合 async/await 和 try…catch 使用