DEV Community

Wakeup Flower
Wakeup Flower

Posted on

NestJS Built-in Exceptions

import { ConflictException } from '@nestjs/common';
throw new ConflictException('User with this email already exists.');

Exception Class Status Code Description
BadRequestException 400 Bad request syntax or invalid data
UnauthorizedException 401 Unauthorized access
NotFoundException 404 Resource not found
ForbiddenException 403 Forbidden access
MethodNotAllowedException 405 HTTP method not allowed
NotAcceptableException 406 Not acceptable
RequestTimeoutException 408 Request timeout
ConflictException 409 Conflict in request
GoneException 410 Resource no longer available
PayloadTooLargeException 413 Payload too large
UnsupportedMediaTypeException 415 Unsupported media type
UnprocessableEntityException 422 Unprocessable entity (e.g. validation error)
InternalServerErrorException 500 Internal server error
NotImplementedException 501 Feature not implemented
BadGatewayException 502 Bad gateway
ServiceUnavailableException 503 Service unavailable
GatewayTimeoutException 504 Gateway timeout

You can create your own exception by extending the HttpException class.

// src/common/exceptions/my-custom.exception.ts
import { HttpException, HttpStatus } from '@nestjs/common';

export class MyCustomException extends HttpException {
  constructor(message: string = 'Something went wrong') {
    super(
      {
        statusCode: HttpStatus.I_AM_A_TEAPOT, // use a relevant HTTP status code
        message,
        error: 'CustomException',
      },
      HttpStatus.I_AM_A_TEAPOT,
    );
  }
}

Enter fullscreen mode Exit fullscreen mode

Usage:

@Get()
someHandler() {
  throw new MyCustomException('This is a custom error!');
}
Enter fullscreen mode Exit fullscreen mode

List of HttpStatus Enum

Constant Name Code Description
CONTINUE 100 Continue
SWITCHING_PROTOCOLS 101 Switching Protocols
PROCESSING 102 Processing (WebDAV)
EARLY_HINTS 103 Early Hints
OK 200 OK
CREATED 201 Created
ACCEPTED 202 Accepted
NON_AUTHORITATIVE_INFORMATION 203 Non-Authoritative Information
NO_CONTENT 204 No Content
RESET_CONTENT 205 Reset Content
PARTIAL_CONTENT 206 Partial Content
MULTI_STATUS 207 Multi-Status (WebDAV)
ALREADY_REPORTED 208 Already Reported
IM_USED 226 IM Used
MULTIPLE_CHOICES 300 Multiple Choices
MOVED_PERMANENTLY 301 Moved Permanently
FOUND 302 Found (Previously "Moved Temporarily")
SEE_OTHER 303 See Other
NOT_MODIFIED 304 Not Modified
USE_PROXY 305 Use Proxy
TEMPORARY_REDIRECT 307 Temporary Redirect
PERMANENT_REDIRECT 308 Permanent Redirect
BAD_REQUEST 400 Bad Request
UNAUTHORIZED 401 Unauthorized
PAYMENT_REQUIRED 402 Payment Required
FORBIDDEN 403 Forbidden
NOT_FOUND 404 Not Found
METHOD_NOT_ALLOWED 405 Method Not Allowed
NOT_ACCEPTABLE 406 Not Acceptable
PROXY_AUTHENTICATION_REQUIRED 407 Proxy Authentication Required
REQUEST_TIMEOUT 408 Request Timeout
CONFLICT 409 Conflict
GONE 410 Gone
LENGTH_REQUIRED 411 Length Required
PRECONDITION_FAILED 412 Precondition Failed
PAYLOAD_TOO_LARGE 413 Payload Too Large
URI_TOO_LONG 414 URI Too Long
UNSUPPORTED_MEDIA_TYPE 415 Unsupported Media Type
REQUESTED_RANGE_NOT_SATISFIABLE 416 Requested Range Not Satisfiable
EXPECTATION_FAILED 417 Expectation Failed
I_AM_A_TEAPOT 418 I'm a teapot
MISDIRECTED 421 Misdirected Request
UNPROCESSABLE_ENTITY 422 Unprocessable Entity
LOCKED 423 Locked (WebDAV)
FAILED_DEPENDENCY 424 Failed Dependency (WebDAV)
TOO_EARLY 425 Too Early
UPGRADE_REQUIRED 426 Upgrade Required
PRECONDITION_REQUIRED 428 Precondition Required
TOO_MANY_REQUESTS 429 Too Many Requests
REQUEST_HEADER_FIELDS_TOO_LARGE 431 Request Header Fields Too Large
UNAVAILABLE_FOR_LEGAL_REASONS 451 Unavailable For Legal Reasons
INTERNAL_SERVER_ERROR 500 Internal Server Error
NOT_IMPLEMENTED 501 Not Implemented
BAD_GATEWAY 502 Bad Gateway
SERVICE_UNAVAILABLE 503 Service Unavailable
GATEWAY_TIMEOUT 504 Gateway Timeout
HTTP_VERSION_NOT_SUPPORTED 505 HTTP Version Not Supported
VARIANT_ALSO_NEGOTIATES 506 Variant Also Negotiates
INSUFFICIENT_STORAGE 507 Insufficient Storage (WebDAV)
LOOP_DETECTED 508 Loop Detected (WebDAV)
NOT_EXTENDED 510 Not Extended
NETWORK_AUTHENTICATION_REQUIRED 511 Network Authentication Required

Top comments (0)