修改统一异常处理seata异常

This commit is contained in:
ajaxfan
2021-04-16 16:18:36 +08:00
parent 4127f39422
commit 1f3762bdb0
2 changed files with 5 additions and 7 deletions

View File

@ -15,6 +15,7 @@ import org.springframework.dao.DataAccessException;
import org.springframework.dao.DuplicateKeyException; import org.springframework.dao.DuplicateKeyException;
import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.transaction.TransactionSystemException;
import org.springframework.validation.BindException; import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
@ -34,7 +35,6 @@ import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.exceptions.ExceptionUtil;
import io.seata.core.context.RootContext; import io.seata.core.context.RootContext;
import io.seata.core.exception.BranchTransactionException;
import io.seata.core.exception.RmTransactionException; import io.seata.core.exception.RmTransactionException;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -258,10 +258,10 @@ public class BusinessExceptionHandlerAdviceDefault {
return BaseResponse.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常", Convert.toStr(body)); return BaseResponse.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常", Convert.toStr(body));
} }
@ExceptionHandler({ BranchTransactionException.class }) @ExceptionHandler({ TransactionSystemException.class, RmTransactionException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseStatus(HttpStatus.BAD_REQUEST)
public BaseResponse<String> handleTransactionSystemException(HttpServletRequest request, public BaseResponse<String> handleTransactionSystemException(HttpServletRequest request,
BranchTransactionException exception) { TransactionSystemException exception) {
log.info(ExceptionUtil.stacktraceToString(exception)); log.info(ExceptionUtil.stacktraceToString(exception));
if (((String) Objects.requireNonNull(exception.getMessage())).contains("may be has finished")) { if (((String) Objects.requireNonNull(exception.getMessage())).contains("may be has finished")) {
String xid = RootContext.getXID(); String xid = RootContext.getXID();

View File

@ -35,9 +35,7 @@ import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.exceptions.ExceptionUtil;
import io.seata.core.context.RootContext; import io.seata.core.context.RootContext;
import io.seata.core.exception.BranchTransactionException;
import io.seata.core.exception.RmTransactionException; import io.seata.core.exception.RmTransactionException;
import io.seata.core.exception.TransactionException;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -258,10 +256,10 @@ public class BusinessExceptionHandlerAdvicePro {
return BaseResponse.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常", Convert.toStr(body)); return BaseResponse.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常", Convert.toStr(body));
} }
@ExceptionHandler({ BranchTransactionException.class }) @ExceptionHandler({ TransactionSystemException.class, RmTransactionException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseStatus(HttpStatus.BAD_REQUEST)
public BaseResponse<String> handleTransactionSystemException(HttpServletRequest request, public BaseResponse<String> handleTransactionSystemException(HttpServletRequest request,
BranchTransactionException exception) { TransactionSystemException exception) {
log.info(ExceptionUtil.stacktraceToString(exception)); log.info(ExceptionUtil.stacktraceToString(exception));
if (((String) Objects.requireNonNull(exception.getMessage())).contains("may be has finished")) { if (((String) Objects.requireNonNull(exception.getMessage())).contains("may be has finished")) {
String xid = RootContext.getXID(); String xid = RootContext.getXID();