Springboot 全局异常、返回实体配置

简介: Springboot 全局异常、返回实体配置

1、返回实体对象的创建

首先,一个项目中为了清晰、统一的处理返回信息,所以需要封装一个返回对象,这个对象需要有响应code码、响应code码对应的描述信息、以及返回数据对象。下面我们来看一下具体代码:

public class ApiResult implements Serializable {
   
    /**
     * 响应码
     */
    private String resultCode;

    /**
     * 响应描述
     */
    public String msg;

    /**
     * 返回数据对象
     */
    public Map<String, Object> data = new HashMap<>();
    public ApiResult() {
   
        this.resultCode = ApiResponse.SUCCESS.getResCode();
        this.msg = ApiResponse.SUCCESS.getResDesc();
    }
    public ApiResult(Map<String, Object> data) {
   
        this.resultCode = ApiResponse.SUCCESS.getResCode();
        this.msg = ApiResponse.SUCCESS.getResDesc();
        this.data = data;
    }

    public ApiResult(ApiResponse resp, Map<String, Object> data) {
   
        this.resultCode = resp.getResCode();
        this.msg = resp.getResDesc();
        this.data = data;
    }

    public ApiResult(ApiResponse resp, Map<String, Object> data, String msg) {
   
        this.resultCode = resp.getResCode();
        this.msg = msg;
        this.data = data;
    }

}

2、全局异常配置

当出现异常情况时,要作为一个统一的异常类来处理相关信息。所以才会出现全局异常类配置。具体代码如下:

public class BaseException extends Exception {
   

    /**
     * 响应完整信息
     *
     * */
    private ApiResponse response;

    public BaseException(Throwable cause) {
   
        super(cause);
    }

    public BaseException(String message) {
   
        super(message);
    }
}

3、全局异常配置完成后,则需要配置一个全局异常处理类

异常类处理完成后,需要有一个异常处理类来完成对各种异常的统一处理,注解标记出了此类是一个Handler,然后下面的ExceptionHandler来捕获各种异常,我这里只捕获了自己定义的异常,如果有多种异常你可以每一个捕获,然后去自定义返回信息节课完成全局统一异常的处理信息。
具体代码如下


@RestControllerAdvice
public class TyBusExceptionHandler {
   
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @ExceptionHandler(BaseException.class)
    @ResponseBody
    public ApiResult handle(BaseException e) {
   
        logger.error("错误信息是:{}", e);
        ApiResult resp = null;
        ApiResponse response = e.getResponse();
        if (response == null || StringUtils.isEmpty(response.getReturnMsg())) {
   
            resp = new ApiResult(e.getResponse(), null, e.getMessage());
        } else {
   
            resp = new ApiResult(e.getResponse(), null);
        }
        return resp;
    }
}

至此全局异常处理类及相关配置已完成

目录
相关文章
|
前端开发 Java
springboot统一处理返回实体与异常抛出
springboot统一处理返回实体与异常抛出
375 0
springboot统一处理返回实体与异常抛出
|
9月前
|
Java
SpringBoot全局异常@RestControllerAdvice全局异常
SpringBoot全局异常@RestControllerAdvice全局异常
48 0
|
9月前
|
前端开发 Java
SpringBoot之实体参数的详细解析
SpringBoot之实体参数的详细解析
99 0
Springboot 全局异常捕获以及统一接口返回结果
Springboot 全局异常捕获以及统一接口返回结果
309 0
|
9月前
|
Java
SpringBoot配置全局异常
SpringBoot配置全局异常
42 0
|
9月前
|
Java
SpringBoot全局异常不生效分析与解决
SpringBoot全局异常不生效分析与解决
355 0
|
JSON Java 数据格式
SpringBoot-10-全局异常
SpringBoot-10-全局异常
95 0
|
Java Spring
SpringBoot - 全局异常
SpringBoot - 全局异常
132 0
|
前端开发 Java 数据库
SpringBoot之自动配置类的解析和过滤机制
1.提炼三句话 整体来讲Spring Boot是通过条件注解、条件评估器和自动配置导入器等机制来实现自动配置的。 条件评估器来判断是否需要加载某个自动配置类。条件评估器通常被定义在“org.springframework.boot.autoconfigure.condition”包中,例如,ClassCondition、BeanCondition、MissingBeanCondition、WebApplicationCondition等 条件注解来判断是否需要加载某个自动配置类。条件注解通常被定义在“org.springframework.boot.autoconfigure.conditi
185 0
|
9月前
|
JSON Java 数据格式
Springboot自定义全局异常处理
BasicErrorController是Spring Boot中默认提供的用于处理基本错误的控制器。它实现了ErrorController接口,用于处理在应用程序中发生的错误,例如404 Not Found等。此种方式是通过请求转发实现的,出现异常时,会转发到请求到/error,该接口对异常进行处理返回,是最符合全局异常处理的。
142 2

热门文章

最新文章