Promise error handling

Error Handling

에러 처리 방법에는 다음과 같이 2가지 방법이 있다.

  1. then()의 두 번째 인자로 에러를 처리하는 방법
save().then(
  handleSuccess,
  handleError
);
  1. catch()를 이용하는 방법
save().then().catch();

위 2가지 방법 모두 프로미스의 reject() 메서드가 호출되어 실패 상태가 된 경우에 실행된다.

하지만, 만약에 handleSuccess()가 에러를 던지면 어떻게 될까? .then()에서 반환된 프로미스는 rejected 되지만, rejection을 catch할 수 있는 방법이 없다.

save() 작업에서 발생하는 오류는 catch가 되지만 handleSuccess() 함수에서 발생하는 오류는 잡을 수 없다.

promise error handling1

두 번째 예제에서 .catch()save() 또는 handleSuccess()의 rejections을 처리한다.

promise error handling2

또한 이런 방식으로 처리해줄 수도 있다.

save()
  .then(
    handleSuccess,
    handleNetworkError
  )
  .catch(handleProgrammerError);

참조 및 출처


[Ju Chan Hwang]
Written by@[Ju Chan Hwang]
JUlog에 오신걸 환영합니다🤗 저에 대해 궁금하다면, 👆제 이름을 눌러보세요

GitHubFacebook