• 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)在之前的异常处理器那里进行异常处理(注意返回的数据也是之前说的统一形式)

  • 相关阅读:
    uniapp制作——交友盲盒
    《网络编程》关于 UNIX网络编程 卷1 的 unp.h 和源码编译问题
    vmware17 虚拟机拷贝、备份、复制使用
    7.10飞书一面面经
    迭代器模式c++实现
    智能电子信息系统组成以及计算机系统组成
    cart算法python实现:从CART算法中学习如何构建有效的决策树
    Trie字典树详解
    9.5 利用可执行内存挑战DEP
    企业经营异常查询API:保障供应链的可靠性与稳定性
  • 原文地址:https://blog.csdn.net/jtjeeeee/article/details/125490894