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;
    }
}

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

更多编程内容,请扫码关注《coder练习生》,如果觉得有用,也可赠送作者一杯咖啡

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

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

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

打赏作者

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

抵扣说明:

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

余额充值