NestJS에서 http에 대한 에러는 HttpException으로 처리한다.
기본적인 사용방법
throw new HttpException('에러메시지', 에러코드) // 예시 @Get() getAllCat() { throw new HttpException('api error', 401) }
또한, 프론트엔드와 백엔드 간의 상호합의를 통해 에러 시 제공하는 데이터를 커스텀해야할 경우가 생길 수도 있는데, HttpException을 통해 json객체를 보내주면 프론트엔드에서 사용할 수 있도록 커스텀해줄 수 있다.
하지만 수많은 데코레이터로 이루어진 애플리케이션이라면 데코레이터마다 HttpException을 이용한 예외필터들을 하드코딩해줘야 하기 때문에, NestJS 공식문서에 따르면, 예외필터를 모듈화 시켜 @UseFilers 데코레이터를 통해 각각, 또는 전역에 선언해 필터를 해줄 수 있다.
각각 데코레이터마다 적용하고 싶으면 각 데코레이터의 하단에 @UseFilters 데코레이터를 사용해주면 되고, 전역으로 적용하고 싶으면 class 상단에 @Controller와 붙혀서 사용해주면 된다.