본문 바로가기
NestJS

[NestJS] exception-filters

by NJ94 2023. 9. 5.

Nest 에는 애플리케이션 전체에서 처리되지 않은 모든 예외를 처리하는 내장

예외 레이어가 함께 제공된다.

 

애플리케이션 코드에서 예외가 처리되지 않으면 

이 계층에서 이를 포착한 다음 사용자에게 친숙한 응답을 자동으로 보낸다.

 

🙄 표준 예외 던지기

import { Controller, Get, HttpException, HttpStatus } from '@nestjs/common'

@Controller("/error/test")
export class ExceptionController {

    @Get()
    findAll() {
        throw new HttpException('Forbidden', HttpStatus.FORBIDDEN);
    }
}

/*
	Response
    
    {
    	"statusCode": 403,
    	"message": "Forbidden"
	}
*/

 

🙄 try catch throw new error

findOne() {
    try {
        return this.service.findOne();
    } catch(e) {
        console.log(e);            
        throw new HttpException({
            status: HttpStatus.FORBIDDEN,
            error: "This is a custom message",
        }, HttpStatus.FORBIDDEN, {
            cause: e
        })
    }
}

 

🙄 HTTP Exception

 

BadRequestException - 400
클라이언트의 요청이 서버에서 처리할 수 없는 형식

또는 구조로 인해 잘못되었음을 나타냅니다.

 

UnauthorizedException - 401
클라이언트가 인증되지 않았거나 인증 정보가 잘못되었음을 나타냅니다.

 

NotFoundException - 404
요청한 리소스가 서버에서 찾을 수 없음을 나타냅니다.


ForbiddenException - 403
클라이언트가 요청한 리소스에 대한 액세스 권한이 없음을 나타냅니다.


NotAcceptableException - 406
서버에서 클라이언트의 요청을 수락할 수 없는 형식이거나 내용일 때 발생합니다.

 

RequestTimeoutException - 408
클라이언트의 요청이 서버에서 처리되지 않고 타임아웃됐음을 나타냅니다.

 

ConflictException - 409
클라이언트의 요청이 서버의 현재 상태와 충돌할 때 발생합니다.

 

GoneException - 410
요청한 리소스가 서버에서 영구적으로 사라졌음을 나타냅니다.


HttpVersionNotSupportedException - 505

서버가 클라이언트의 HTTP 버전을 지원하지 않을 때 발생합니다.

 

PayloadTooLargeException - 413
클라이언트가 서버에게 너무 큰 요청 본문을 보냈을 때 발생합니다.


UnsupportedMediaTypeException - 415
클라이언트의 요청이 서버에서 지원하지 않는 미디어 타입 또는 포맷일 때 발생합니다.

 

UnprocessableEntityException - 422
클라이언트의 요청이 서버에서 처리할 수 없는 형식이거나

유효하지 않은 데이터를 포함할 때 발생합니다.


InternalServerErrorException - 500
서버에서 예상치 못한 내부 오류가 발생했음을 나타냅니다.

 

NotImplementedException - 501
요청된 작업이 서버에서 구현되지 않았음을 나타냅니다.

 

ImATeapotException - 418
농담용 예외로, "나는 물 주전자입니다"를 나타내는 특별한 예외입니다.

 

MethodNotAllowedException - 405
클라이언트가 요청한 HTTP 메서드가 리소스에서 허용되지 않을 때 발생합니다.

 

BadGatewayException - 502
게이트웨이나 프록시 서버에서 원격 서버로의 잘못된 요청을 나타냅니다.

 

ServiceUnavailableException - 503
버가 현재 서비스를 이용할 수 없음을 나타냅니다.

 

GatewayTimeoutException - 504

게이트웨이나 프록시 서버가 원격 서버로부터 응답을 기다리는 동안 시간 초과되었음을 나타냅니다.

 

PreconditionFailedException - 412
클라이언트의 요청이 서버에서 설정한 사전 조건을 만족하지 않을 때 발생합니다.

 

 

https://docs.nestjs.com/exception-filters

 

Documentation | NestJS - A progressive Node.js framework

Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea

docs.nestjs.com

'NestJS' 카테고리의 다른 글

[NestJS] Guards  (0) 2023.09.08
[NestJS] Pipes  (0) 2023.09.06
[NestJS] Middleware  (0) 2023.09.05
[NestJS] Modules  (0) 2023.09.05
[NestJS] Provider, IOC, DI  (0) 2023.09.05