手动抛出异常回滚事务,且返回数据给前端

tech2025-06-12  4

一、简介

有时候会遇到需要手动抛出异常来回滚事务的情况,一般抛出异常后显示的是500服务器错误,如果想要返回json数据给前端的话,就可以用自定义异常类+全局异常捕捉。

 

二、自定义异常类

这里只定义了code码和msg消息,可以根据需要进行改造。

public class CommonException extends RuntimeException { private int code; private String msg; public CommonException(int code,String msg){ super(msg); this.code = code; this.msg = msg; } public int getCode() { return code; } public String getMsg() { return msg; } }

 

三、全局异常捕捉

捕捉我们自定义的CommonException异常,并返回json数据给前端。不会影响事务回滚。

import com.alibaba.fastjson.JSONObject; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; /** * 全局异常捕捉类 */ @ControllerAdvice public class ExceptionControllerAdvice { /* 捕捉自定义的CommonException异常 */ @ExceptionHandler(CommonException.class) @ResponseBody public JSONObject CommonExceptionHandler(CommonException e) { JSONObject jsonObject = new JSONObject(); jsonObject.put("code",e.getCode()); jsonObject.put("msg",e.getMsg()); return jsonObject; } }

 

四、手动抛出异常

在业务代码逻辑中使用如下代码手动抛出异常。

throw new CommonException(500,"系统错误!");

 

最新回复(0)