당신이 보여줄 때 알몸으로 잡고 던지는 것은 의미가 없습니다. 코드 추가 및 느린 실행 외에는 유용한 작업을 수행하지 않습니다. 따라서 다시 .catch()
던지려는 경우에서 원하는 작업 .catch()
이 있어야 합니다 . 그렇지 않으면 .catch()
전체를 제거해야합니다 .
일반적인 구조의 일반적인 요점 .catch()
은 오류를 기록하거나 파일 닫기와 같은 일부 상태를 정리 하는 것과 같은 작업 을 실행 하려고하지만 약속 체인이 거부 된 상태로 계속되기를 원할 때입니다.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
튜토리얼에서는 사람들에게 오류를 포착 할 수있는 위치를 보여 주거나 오류를 처리하는 개념을 가르치고 다시 던지기 위해있을 수 있습니다.
잡기 및 다시 던지기에 대한 몇 가지 유용한 이유는 다음과 같습니다.
- 오류 를 기록하고 싶지만 약속 체인을 거부 된 상태로 유지합니다.
- 오류를 다른 오류로 바꾸고 싶습니다. (체인의 끝에서 종종 쉽게 오류 처리를 위해). 이 경우 다른 오류가 다시 발생합니다.
- 약속 체인이 계속되기 전에 (예 : 닫기 / 사용 가능한 리소스) 많은 처리 를 수행하고 싶지만 약속 체인이 거부 된 상태로 유지되기를 원합니다.
- 실패가있는 경우 약속 체인의이 지점에서 디버거 에 대한 중단 점을 배치 할 지점을 원합니다 .
그러나 catch 핸들러에 다른 코드가없는 동일한 오류를 일반 catch 및 rethrow는 정상적인 코드 실행에 유용한 작업을 수행하지 않습니다.