[javascript] 프로미스의 에러 처리 방법

프로미스(Promise)는 자바스크립트에서 비동기 작업을 다룰 때 많이 사용되는 패턴입니다. 비동기 작업이 성공적으로 완료되었거나 실패했을 때, 프로미스는 해당 결과를 처리하는 방법을 제공합니다. 에러 처리는 프로미스를 사용하는 중요한 부분 중 하나입니다. 이 글에서는 프로미스의 에러 처리 방법에 대해 알아보겠습니다.

프로미스에서 에러 발생시키기

프로미스 체인 내에서 에러를 발생시키려면 throw 키워드를 사용합니다. 예를 들어, 다음과 같은 프로미스 체인이 있다고 가정해봅시다.

function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject(new Error("데이터를 가져오는데 실패했습니다."));
    }, 2000);
  });
}

fetchData()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });

fetchData 함수는 2초 후에 데이터를 가져오는 비동기 작업을 수행합니다. 하지만 이 작업이 실패할 시, Error 객체를 생성하여 reject 함수에 넘겨줌으로써 에러를 발생시킵니다. 이렇게 발생한 에러는 .catch 메소드를 통해 제대로 처리됩니다.

프로미스에서 에러 처리하기

프로미스에서 발생한 에러는 .catch 메소드를 이용해 처리할 수 있습니다. .catch 메소드는 해당 프로미스나 이전 .then 메소드에서 발생한 에러를 처리합니다. 만약 프로미스 체인 내에서 여러 에러를 처리해야 한다면, 추가적인 .catch 메소드를 연이어 호출해 사용할 수 있습니다. 예를 들어, 다음과 같이 프로미스에서의 에러 처리를 구현할 수 있습니다.

fetchData()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error("데이터를 가져오는 도중 에러가 발생했습니다:", error);
  })

위 예제처럼 .catch 메소드를 사용하여 프로미스에서 발생한 에러를 캐치하고 적절한 동작을 수행할 수 있습니다.

요약

프로미스에서 에러 처리는 비동기 작업을 안전하게 다루는 중요한 부분입니다. 에러를 발생시키고 캐치하는 방법을 이해하고 적절하게 처리하는 것이 중요합니다. 프로미스 체인 내에서 에러가 발생할 수 있는 경우, .catch 메소드를 이용하여 에러를 쉽게 처리할 수 있습니다.

이외에도 다양한 방법으로 프로미스의 에러 처리를 다룰 수 있습니다. 프로미스에 대한 더 자세한 내용은 MDN 문서를 참고하시기 바랍니다.