ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서버에서 에러 처리하기 - CodeHan의 코딩공부
    BackEnd/개념정리 2022. 9. 12. 12:20
    반응형

    서버에서 에러처리를 제대로 하지 못하면 App 이용하는 모든 사용자에게 피해가 간다.

    내가 만든 App이나 Web에서 발생한 에러를 어떻게 처리해야 효율적일까?

    (본 내용은 Express.js를 기반으로 작성되었습니다.)

     

    에러를 잘 처리한다는 것은 뭘까?

    에러를 처리한다는 것은 Client 요청한 request 제대로 처리하지 못했다면,

    Client에게 적절한 error message statusCode 전송하는 것과 문제가 발생했을

    서버가 죽지 않도록 하는 것으로 생각해볼 있다.

     

    에러를 처리하는 방법은?

    Express.js에선 최하단에 위치한 listen(port)위에 app.use를 이용해서 발생하는 Error를 처리해줄 수 있다.

    하지만 이 최하단에 위치한 에러를 처리하는 미들웨어는 안전망이라는 개념이 강하므로 각각의 요청에 맞는

    middleWare에서 적절한 처리를 해주는 것이 좋다.

     

    동기함수 에러 처리하기

    동기함수는 try & catch 에러처리를 해준다.

     

    비동기함수 에러 처리하기

    비동기함수는 error 발생해도 error인자가 최하단에 위치한 안전망에 도달하지 않고

    비동기 함수 error처리하는 부분으로 전달되기 때문에 비동기함수 내에서 error처리를 해주어야 한다

    .Promise함수 역시 .then().catch() 처리해야 한다.

     

    Async Await은?!

    Await함수 자체는 동기적이지만 return promise 되기 때문에 최하단 안전망에 도달하지 않는다.

    따라서 await함수를 try & catch 감싸서 에러를 처리해야 한다.

     

    비동기함수도 마지막 안전망에 도달하게 할 수는 없을까?

    있다.

    Express.js 5.0.0 ver에서 해당 error 처리하는 방법을 만들었다.

    프로미스를 리턴하면 별다른 에러처리를 하지 않더라도 최하단 안전망에 도착한다.

     

    결론 : 

    Error마다 상세하게 처리해주기 귀찮다면 express.js 5.0.0이상 ver사용하자.

    그렇지만 나는 사용자에게 유의미한 에러를 처리해주는게 좋다고 생각한다.

    반응형

    댓글

Designed by Tistory.