@nestjs/common 的过滤器 Exception 有哪些
在 @nestjs/common
中,异常过滤器(Exception Filters)用于处理应用程序中的异常。NestJS 提供了一些内置的异常类,你可以使用这些异常类来抛出特定类型的错误。以下是一些常见的异常类:
1. HttpException
这是 NestJS 中的基本 HTTP 异常类。你可以使用它来抛出 HTTP 错误,并指定状态码和错误消息。
import { HttpException, HttpStatus } from "@nestjs/common";
throw new HttpException("Forbidden", HttpStatus.FORBIDDEN);
2. BadRequestException
用于表示请求参数无效或请求格式错误的异常。其 HTTP 状态码为 400。
import { BadRequestException } from "@nestjs/common";
throw new BadRequestException("Invalid request data");
3. UnauthorizedException
用于表示未授权访问的异常。其 HTTP 状态码为 401。
import { UnauthorizedException } from "@nestjs/common";
throw new UnauthorizedException(
"You are not authorized to access this resource"
);
4. NotFoundException
用于表示请求的资源未找到的异常。其 HTTP 状态码为 404。
import { NotFoundException } from "@nestjs/common";
throw new NotFoundException("Resource not found");
5. ForbiddenException
用于表示禁止访问的异常。其 HTTP 状态码为 403。
import { ForbiddenException } from "@nestjs/common";
throw new ForbiddenException("Access denied");
6. ConflictException
用于表示请求冲突的异常。其 HTTP 状态码为 409。
import { ConflictException } from "@nestjs/common";
throw new ConflictException("Resource already exists");
7. InternalServerErrorException
用于表示服务器内部错误的异常。其 HTTP 状态码为 500。
import { InternalServerErrorException } from "@nestjs/common";
throw new InternalServerErrorException("Internal server error");
8. NotAcceptableException
用于表示请求的内容类型不被接受的异常。其 HTTP 状态码为 406。
import { NotAcceptableException } from "@nestjs/common";
throw new NotAcceptableException("Not acceptable content type");
9. PayloadTooLargeException
用于表示请求的负载过大的异常。其 HTTP 状态码为 413。
import { PayloadTooLargeException } from "@nestjs/common";
throw new PayloadTooLargeException("Payload too large");
10. UnsupportedMediaTypeException
用于表示不支持的媒体类型的异常。其 HTTP 状态码为 415。
import { UnsupportedMediaTypeException } from "@nestjs/common";
throw new UnsupportedMediaTypeException("Unsupported media type");
总结
NestJS 提供了多种内置异常类,允许开发者根据不同的错误情况抛出相应的异常。这些异常类不仅提供了状态码和错误消息,还可以帮助你更好地管理和处理应用程序中的错误。通过使用这些异常类,你可以提高应用程序的可维护性和可读性。