【W10】手机号长度验证(前后端 + 异常 + 日志 + 截图)

一、作业要求

  1. 按 PPT 方式触发新的参数验证异常
  2. 展示前后端代码、请求、响应、报错日志
  3. 完整复现 PPT 流程
  4. 实现思路:

    为满足作业要求,在用户实体类 SysUser.java 中,给用户昵称 nickName 新增参数校验规则:限制昵称最大长度为 10 个字符,同时设置非空校验。故意输入超过 10 位的昵称,触发 MethodArgumentNotValidException 参数校验异常,由全局异常处理器统一捕获并返回友好提示。

二、传统参数校验缺点

  • 代码冗余:每个方法都要写 if 判断
  • 维护困难:修改规则要改所有地方
  • 可读性差:业务与校验代码混合

三、本次实现功能

SysUser 的 nickName 做校验:

  1. 不能为空
  2. 长度不能超过 10
  3. 超过 10 位自动抛出异常

四、后端代码实现

1. 实体类 SysUser.java(添加校验注解)

新增修改:用户昵称长度不能超过10个字符(原来为30个)

2. Controller 层(开启校验)

位置:SysUserController.java

在新增 / 修改用户接口上,已有 @Validated 开启校验:

@Validated 放置位置: 在 Controller 方法的参数前,@RequestBody 注解的左侧。 作用:开启对当前实体类的参数验证。

3. 全局异常处理器(捕获验证异常)

位置:GlobalExceptionHandler.java

五、触发参数验证异常

1. 触发方式

  • 前端:系统管理 → 用户管理 → 新增用户

前端:

已经成功触发了新的参数验证异常

浏览器网络请求的完整响应体:

控制台里直接显示了后端返回的错误信息:

IDEA 控制台里报错截图:

可以看到最下面有报错

ERROR c.r.f.w.e.GlobalExceptionHandler org.springframework.web.bind.MethodArgumentNotValidException default message [用户昵称长度不能超过10个字符]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值