全局异常类和统一返回结果

随记一、个人认知全局异常类和统一返回结果

  


目录

随记一、个人认知全局异常类和统一的返回结果

前言

一、统一反应结果是什么?

二、全局异常类是什么?

三、统一反应结果如何实现?

  3.1、注意事项

四.全局异常类如何实现?

 4.1、注意事项

五、个人练习的pom依赖(参考)

总结



前言

   在学习完了springboot和单体架构的一些技术之后,理解了一些东西,对全局异常类和统一返回结果有了一定的认知,下面是本人的一些个人理解和观点,仅供大家参考。

一、统一反应结果是什么?

  其实统一反应结果就是指一个类,通过这个类来对你controller层面代码返回的结果进行了统一封装,进行了规范化的统一返回,使你的代码更加的优雅和简介

二、全局异常类是什么?

  全局异常类其实也是一个类,他会在代码出现了异常和错误的时候进行捕获并打印在网页上,如果没有全局异常类,会发现在代码出现问题的时候你的程序会停止,但是当存在了全局异常类的时候,如果代码出现了问题,会打印出错误并且程序不会停止

三、统一反应结果如何实现?

  以下是个人写的代码,仅供简单的理解和参考练

  代码如下(示例):

@Data
public class GolbalResult<T> {
    Integer code;
    String msg;
    T data;

    GolbalResult(){

    }
    GolbalResult(Integer code,String msg,T data){
        this.code=code;
        this.msg=msg;
        this.data=data;
    }
    GolbalResult(Integer code,T data){
        this.code=code;
        this.data=data;
    }
    GolbalResult(Integer code,String msg){
        this.code=code;
        this.msg=msg;
    }

    public static GolbalResult<Void> success(){
        return new GolbalResult<Void>(1,"");
    }
    public static<T> GolbalResult<T> success(T data){
        return new GolbalResult<T>(1,data);
    }
    public static<T> GolbalResult<T> success(Integer code,String msg){
        return new GolbalResult<T>(code,msg);
    }
}

  3.1、注意事项

  (1)一个类想要是在体内使用泛型数据,这个类必须是泛型类

  (2)在统一响应结果中一共会存在三个参数,code(状态码)、msg(描述信息)、data(状态码)

  (3)注意Data注解,作用是生当前类的get和set方法,需要引入lombok的依赖

四.全局异常类如何实现?

   代码如下(示例):

@RestControllerAdvice
public class GolbalException {

    @ExceptionHandler
    public String exceptionHandler(Exception e){
        System.out.println("已经进行全局异常捕获"+e);
        return "全局异常捕获,错误原因"+e.getMessage();
    }
}

  个人编写的异常类,比较潦草,能够理解即可

 4.1、注意事项

  (1)RestController这个注解的作用是声明这个类是一个全局异常类,当程序出现异常 会通过这个类封装称为json类型的数据进行返回

  (2)@ExceptionHandler注解在出现异常时会将异常的类型与这个注解方法的参数进行比较,匹配的话将会执行方法体

五、个人练习的pom依赖(参考)

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>

    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>0.9.1</version>
    </dependency>

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
</dependencies>


总结

  个人随记,在学习完了springboot之后,编写了一个单体架构的项目,梳理了许多的知识,但是随着越来越深入会有很多的东西会不断的遗忘,所以开始写csdn,可以记录一些东西,同时我觉得对我个人也是有一些益处的,可以巩固和加深知识,因为是第一次写,内容和语言有所欠缺。希望大家多多包涵。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

载着梦想的猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值