less than 1 minute read

  • .catch는 프라미스에서 발생한 모든 에러 다룸

  • .catch는 명시적인 거부와 핸들러 위쪽에서의 에러 또한 잡을 수 있어서 체인 마지막에 위치 가능

  • 프라미스 executor와 프라미스 핸들러 코드 주위엔 보이지 않는 ‘try..catch’ 있음

  • executor 주위(핸들러에서도)의 ‘암시적 try..catch’는 자동으로 에러 잡구 이를 거부상태의 프라미스로 변경(reject)

  • reject() 가 호출되거나 에러 던져지면 .catch에서 이를 처리

  • .catch 는 에러를 처리하고 싶은 지점에 정확히 위치 시켜야 하며 처리됮 못한 에러는 다시 던질 수 있음(가까운 에러 핸들러(catch)에서 다시 잡아냄)

  • .catch 추가 하지 않았을 시 에러가 ‘갇혀버리고’ 스크립트가 죽음

  • 에러 발생 시 회복할 방법 없을 때 .catch 사용하지 않아도 괜찮음

  • JS 는 프라미스 거부 추적

  • unhandlerejection 이벤트 핸들러 사용해 처리되지 않은 에러 추적하고 이를 사용자(서버)에 알려서 앱이 그냥 죽는 것 방지 가능