강의를 띄엄띄엄 듣다 보니까 앞에서 다룬 내용인지도 가물가물하네요, 이미 다룬 내용 중복이면 알려주시면 감사합니다.
교재를 봐서는 여기서 Promise / async 함수의 에러를 처리하는 부분이 처음 나오는데 synchronous한 함수의 에러 처리와 달라서 기록하였습니다.
Synchronous한 함수의 경우 에러를 던지기만 하면 다음 에러 처리 미들웨어에서 에러 처리가 된다고 배웠습니다.
반면 Promise나 async 함수의 경우 Express 4에서는 아직 async 함수 내부의 error, 즉 Rejected Promise를 자동으로 처리해주지 않는다고 합니다. 즉 에러를 던지기만 하면 안되고 0:06에 나온 코드와 같이
try {
const result = await promise
...
} catch (error) {
next(error)
}
와 같이 에러를 명시적으로 에러 처리 미들웨어로 넘겨야 한다고 합니다.
출처는 express guide입니다.
https://expressjs.com/en/guide/error-handling.html
혹시라도 부정확한 내용이 있을 경우 알려주시면 감사한 마음으로 수정하도록 하겠습니다.