• SpringMVC(4)——数据封装与异常处理


    一,表现层数据封装

    为了便于前端对数据的操作,我们应该将响应到前端的数据统一格式。

    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)将可能出现的异常进行包装,转换成自定义异常,例如

    1. try{
    2.     int i=1/0;
    3. }catch(ArithmeticException e){
    4.     throw new SystemException(10011,"服务器访问超市,请稍后")
    5. }

    (10011就是上面提到的异常码,SystemException是自定义异常)

            4)在之前的异常处理器那里进行异常处理(注意返回的数据也是之前说的统一形式)

  • 相关阅读:
    【场景化解决方案】项目管理结合酷应用,让企业项目管理更便捷高效
    如何建设一个安全运营中心(SOC)?
    ILRuntime热更的小技巧
    mysql主从数据不同步
    docker容器的设置本地时间(/etc/localtime)和本地时区(/etc/timezone)
    【LeetCode】88. 合并两个有序数组
    Tomcat的动静分离
    RK3568+Codesys ARM+LINUX硬件平台的软PLC解决方案
    Oracle 如何修改当前的序列值
    kafka顺序读写磁盘分析
  • 原文地址:https://blog.csdn.net/jtjeeeee/article/details/125490894