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,
);
}
}
Usage:
@Get()
someHandler() {
throw new MyCustomException('This is a custom error!');
}
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)