Front-end/JavaScript

JS 에러 핸들링 4편 - async error handling

파리외 개발자 2023. 8. 9. 23:01

일반적인 try catch문은 비동기 코드에선 동작하지 않기에

Promise에서 따로 catch문을 지원한다.

하지만 또다시 async함수로 작성하게 된다면 Promise의 catch가 아닌

일반 try catch문의 문법대로 에러 핸들링을 하게 된다.

async함수 내에서 정의된 try catch문은 비동기 오류를 잡아낼 수 있다.

 

(async function () {
  try {
    await Promise.resolve("async fail #1");
    await Promise.reject("async fail #2");
  } catch (err) {
    console.log(err);
  }
  console.log("isnt still good?");
})();

사용법은 일반 try catch문과 동일하다.

try문 안의 reject에서 발생한 에러를 catch문이 잡아내고

그 바깥의 콘솔실행은 그대로 동작하게 된다.