Error Process

Express에서 Error를 처리하기 위한 프로세스은 여러가지가 있는데, try-catch방법, promise-catch, next-error 방법이 있다. 이 3가지 방법의 사용을 위한 대략적인 설명과, next-error의 자세한 설명을 소개하겠다.

try-catch

try-catch방법은 대부분의 프로그래밍 언어에서 사용하고 있는 방식으로

try{
    ...
}catch(e){
    ...
}

위와 같은 방식으로 사용을 하는데 try내부에 Error가 나올수도 있는 코드를 작성후, Error가 나오는 경우 바로 catch로 넘어가 Error를 핸들링을 해주는 방법이다. 이때, catch에 인자값으로 넘어가는 e값은 Error 클래스값을 받는다.

promise-catch

promise-catch방법은 Promise 패턴을 이용한 방법으로

Promise
    .then(()=>...)
    .then(()=>...)
    .then(()=>...)
    .catch(e=>...)

위와 같은 방식인데, 이때 try-catch방식과는 다르게, Promise객체를 이용하여, then에서 Error가 나올경우 catch에서 처리를 해주는 방식이다.

next-catch

next-catch방식은 위의 다른 방식들과 다르게 express에서만 사용이 가능한 방식이다.

next(new Error('Test Error'))

app.use((err,req,res,next)=>{
    ...
})

첫 번째 코드는 router의 controller부분에서 사용이 되는 코드로, next에 인자값으로 error값을 넘기는경우 express에서 자동으로 error 처리 미들웨어인 두번째 코드로 넘겨준다. 이때 error 처리 미들웨어는 총 4개의 인자값을 가지며, 모든 미들웨어중 마지막에 넣어준다. 이런식으로 Error를 처리를 해주는것이 node의 비동기적인 측면에서도 좋으며, Custom Error를 이용하여, 코드의 중복을 막아줄 수도 있다.

results matching ""

    No results matching ""