SpringCloud 整合统一异常处理
PassJava (佳必过) 项目全套学习教程连载中
文档在线地址:www.passjava.cn
SpringCloud 整合统一异常处理
一、缘起
我们在写代码的时候,通常会在方法里面添加各种 try catch 来捕获异常,会发现有很多重复的代码,所以我们可以整合统一异常处理来优化代码结构。
拦截异常并统一处理我们可以用到@RestControllerAdvice
注解
二、自定义异常处理类
添加统一异常处理类注解
@RestControllerAdvice
添加日志注解
@Slf4j
添加异常处理方法注解
@ExceptionHandler
三、推荐的系统错误码
1.错误码和错误信息定义类
1.错误码长度:5 个数字
2.前两位:业务场景
3.后三位:错误码
2.错误码枚举类
com.jackson0714.common.exception.BizCodeEnum
定义了两种异常枚举:系统未知异常、参数格式校验失败
四、测试代码
测试场景 1:校验参数 displayOrder 必须为正整数,如果 displayOrder 不为正整数,则会抛出异常
1.实体类上添加校验注解
@Positive
2.controller 类里面添加 save 方法,并添加校验参数注解 @Valid
测试:
用 Postman 工具调用 save 方法
请求地址:
请求参数:
返回结果:
测试场景 2:对于代码里面直接抛出的异常,也可以 handle
1.controller 类里面添加查询题目的方法,并抛出 Exception 异常
测试:
用 Postman 工具调用 save 方法
请求地址:
返回结果:
证明统一处理方法被调用了:
代码地址
https://github.com/Jackson0714/PassJava-Platform
版权声明: 本文为 InfoQ 作者【悟空聊架构】的原创文章。
原文链接:【http://xie.infoq.cn/article/269aa2fa16d6ca8c2c3a25d30】。未经作者许可,禁止转载。
评论 (1 条评论)