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 |