Promise 를 처리할 때 에러를 회복할 방법이 없다면 catch 를 사용하지 않아도 된다고 한다. 프론트엔드에서도 Promise 에 익셉션이 발생하면 깨져도 된다고 말하고 있다. 대신 unhandledrejection
이벤트를 등록하여 사용자 혹은 서버에 알려서 애플리케이션이 아무런 설명도 없이 '그냥 죽는걸' 방지하라고 설명하고 있다.
window.addEventListener('unhandledrejection', function(event) {
// 이벤트엔 두 개의 특별 프로퍼티가 있습니다.
alert(event.promise); // [object Promise] - 에러를 생성하는 프라미스
alert(event.reason); // Error: 에러 발생! - 처리하지 못한 에러 객체
});
new Promise(function() {
throw new Error("에러 발생!");
}); // 에러 처리 핸들러, catch가 없음