一,表现层数据封装
为了便于前端对数据的操作,我们应该将响应到前端的数据统一格式。
1、创建一个统一数据返回结果类(就是返回的数据全部封装成这个类型)
2、基本的参数有code、data、msg这三个
1)code可以判断操作是否成功,一般是个Integer类型,可以将code的所有状态码放到一个类中方便后续使用
2)data是返回的数据,有可能是个集合或者是个pojo类型等,所以类型设为Object
3)msg是返回的信息,比如操作成功或者操作失败,类型是String
3、最后就可以把控制器的所有返回值封装成这种类型的数据
(当然如果需要别的也可以添加参数,但是我觉得这三个已经差不多了)
二,异常处理
1、异常处理器
1)描述:集中的、统一的处理项目中出现的异常
2)异常处理器的创建
①声明该类为异常处理器@RestControllerAdvice
②在异常处理的方法上添加@ExceptionHandler(异常类型.class)
2、项目异常分类
1)业务异常(BusinessException):规范的用户行为产生的异常、不规范的用户行为操作产生的异常
2)系统异常(SystemException):项目运行过程中可预计且无法避免的异常
3)其他异常(Exception):编程人员未预期到的异常
3、处理异常的思路
1)业务异常:发送对应消息传递给用户,提醒规范操作
2)系统异常:①发送固定消息安抚用户
②发送特定消息给运维人员,提醒维护
③记录日志
3)其他异常:①发送固定消息安抚用户
②发送特定消息给编程人员,提醒维护
③记录日志
4、处理异常
1)需要自己创建两个自定义异常的类,继承RuntimeException覆盖所有构造方法
2)在类中创建一个code(异常码,用来区别是什么异常)
3)将可能出现的异常进行包装,转换成自定义异常,例如
try{
int i=1/0;
}catch(ArithmeticException e){
throw new SystemException(10011,"服务器访问超市,请稍后")
}
(10011就是上面提到的异常码,SystemException是自定义异常)
4)在之前的异常处理器那里进行异常处理(注意返回的数据也是之前说的统一形式)