全局异常处理器
全局异常处理器
悟已往之不谏,知来者之可追:hash::first_quarter_moon::ant:
处理过程展示
问题的来由
已知我有一个用户表用于存储用户的个人信息,并且设置了主键ID和username唯一
于是我接着创建一个新用户admin,系统会报错
上述错误的没有进行处理,因此当Mapper抛出Duplicate错误的时候,错误将抛出到调用mapper的service层,因为service层也没有做处理,因此错误继续向上抛至调用Service的Controller层,然后框架就会返回一个错误数据【该数据不符合我们返回值的规范,我们返回值规范是一个Result类】
为此,定义一个全局异常处理器,捕获异常,并做统一处理:创建一个类,并添加上@RestControllerAdvice注解,该注解标识这个类是一个全局异常处理器,方法上添加@ExceptionHandler注解说明捕获的异常种类
1 |
|
- @
ExceptionHandler
:通过指定注解的value属性,说明要捕获的异常 - @
RestControllerAdvice
:该注解由@ControllerAdvice + @ResponseBody组成,ResponseBody会将返回值转换为JSON传递到前端
设置完全局异常处理器之后再次发送请求查看结果可以看到服务端捕获到异常并打印了异常的堆栈信息:
同时前端接收到的返回值也变成我们想要接收的数据类型
- 标题: 全局异常处理器
- 作者: 忘记中二的少年
- 创建于 : 2023-10-02 12:00:00
- 更新于 : 2023-10-05 20:26:07
- 链接: https://github.com/HandsomeXianc/HandsomeXianc.github.io/2023/10/02/全局异常处理器/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。