当前位置: 首页 > news >正文

服务端之nestJS常用异常类及封装自定义响应模块

MENU

  • 前言
  • 常用异常类(由@nestjs/common提供,一)
  • 常用异常类(由@nestjs/common提供,二)
  • 示例
  • 自定义异常(可选)
  • 自定义响应模块

前言

在NestJS中,@nestjs/common提供了大量的内置异常类,主要用于在控制器、服务等层抛出特定的HTTP错误响应。


常用异常类(由@nestjs/common提供,一)

序号异常类状态码说明
01BadRequestException400客户端请求参数错误、验证失败
02UnauthorizedException401未授权,常用于认证失败(账号/密码错误、token无效等)
03ForbiddenException403无权限访问(即使已认证)
04NotFoundException404找不到资源(如用户不存在)
05MethodNotAllowedException405不允许的请求方法
06NotAcceptableException406请求格式不可接受(比如响应类型不被支持)
07RequestTimeoutException408请求超时
08ConflictException409资源冲突(如重复注册、唯一索引冲突)
09GoneException410资源已被永久删除
10PayloadTooLargeException413请求体过大(文件上传)
11UnsupportedMediaTypeException415不支持的媒体类型(如上传类型错误)
12UnprocessableEntityException422语义错误、验证失败(用于复杂验证)
13InternalServerErrorException500服务端错误
14NotImplementedException501接口未实现
15BadGatewayException502网关错误
16ServiceUnavailableException503服务不可用(服务器维护、宕机等)
17GatewayTimeoutException504网关超时

常用异常类(由@nestjs/common提供,二)

序号异常类状态码说明使用场景示例
01BadRequestException400客户端请求参数错误、验证失败表单必填字段缺失、参数格式不正确、验证码错误
02UnauthorizedException401未授权,常用于认证失败登录失败(账号/密码错误)、Token 无效或过期
03ForbiddenException403无权限访问(即使已认证)用户已登录,但没有访问某个资源的权限,例如普通用户访问管理员接口
04NotFoundException404找不到资源查询用户、文章或其他资源不存在
05MethodNotAllowedException405不允许的请求方法接口只允许 POST,但用户使用 GET 请求
06NotAcceptableException406请求格式不可接受客户端请求Accept: application/xml,但服务器只返回 JSON
07RequestTimeoutException408请求超时客户端长时间未发送完整请求数据,服务器关闭连接
08ConflictException409资源冲突重复注册账号、邮箱已存在、更新资源版本冲突
09GoneException410资源已被永久删除某条数据已被删除且不可恢复,例如已注销的用户账户
10PayloadTooLargeException413请求体过大上传文件过大或一次性发送的数据超过服务器限制
11UnsupportedMediaTypeException415不支持的媒体类型客户端上传image/gif,服务器只支持image/png
12UnprocessableEntityException422语义错误、验证失败表单验证通过,但逻辑上不允许,例如生日大于当前日期
13InternalServerErrorException500服务端错误数据库异常、第三方服务报错、未捕获异常
14NotImplementedException501接口未实现客户端调用了服务器未开发的接口
15BadGatewayException502网关错误服务器作为代理请求上游服务失败,例如 Nginx 访问后端接口失败
16ServiceUnavailableException503服务不可用服务器维护或宕机、负载过高无法处理请求
17GatewayTimeoutException504网关超时服务器作为代理请求上游服务超时未响应

示例

import{BadRequestException,UnauthorizedException,NotFoundException,ConflictException,}from'@nestjs/common';if(!user)thrownewNotFoundException('用户不存在');if(!isPasswordValid)thrownewUnauthorizedException('账号或密码错误');if(emailAlreadyUsed)thrownewConflictException('该邮箱已被注册');if(!dto.name)thrownewBadRequestException('用户名不能为空');

自定义异常(可选)

可以继承HttpException自定义

import{HttpException,HttpStatus}from'@nestjs/common';thrownewHttpException('自定义错误信息',HttpStatus.BAD_REQUEST);

封装成一个类

exportclassCustomExceptionextendsHttpException{constructor(){super('这是一个自定义异常',HttpStatus.I_AM_A_TEAPOT);}}

自定义响应模块

敬请期待…

http://www.jsqmd.com/news/446786/

相关文章:

  • ROS 摄像头参数标定
  • OBLITERATUS:解锁大模型无限潜力
  • 会穿搭才是真的美,聪明女人必学的搭配技巧,优雅高级又有气质
  • 为macOS Finder提供直观的剪切粘贴体验 - 实践
  • C#委托学习思维导图
  • 一、HTML简介与开发环境
  • 技术架构解析:如何构建高并发、合规的本地生活多平台抽佣系统
  • 小程序商城平台哪家强?做商城小程序选哪个制作平台? - 码云数智
  • [kotlin] 从Java到Kotlin:掌握基础语法差异的跃迁指南 - 指南
  • 小程序商城哪个平台好,SaaS小程序商城平台深度对比 - 码云数智
  • 小程序开发一个多少钱啊,三种方式的费用构成与适用场景 - 码云数智
  • 如何做一个微信小程序商城 - 码云数智
  • 两个空,一个空性:AI元人文指向同一个家
  • 小程序快速开发平台有哪些,SaaS小程序制作平台深度对比 - 码云数智
  • 小程序第三方开发平台有哪些 - 码云数智
  • 如何开发微信里的小程序,小程序自助搭建教程 - 码云数智
  • 怎么开通自己的小程序,零代码小程序搭建全攻略 - 码云数智
  • 实用指南:Jenkins高级管理
  • 二叉树的层序遍历-leetcode
  • B2B制造企业如何选择AI出海服务商?2026年主流平台能力与用户反馈解析 - 品牌2026
  • 制造业B2B企业出海营销如何提效?2026年AI智能体服务商能力全景解析 - 品牌2026
  • Whats respect
  • [Redis从零到精通|第四篇]:缓存穿透、雪崩、击穿 - 指南
  • 软件测试经典面试题,助你面试加分
  • Whats respect。
  • 空性西传——用却无视
  • 有意思的开源软件
  • 原生Java NIO的核心“坑”与Netty的解决方案(深度解析)
  • pngjs
  • 立直麻将赛事记分系统介绍与优化改进