【更新】回滚错误异常处理

pull/94/head
徐玉祥 2023-03-13 23:56:20 +08:00
parent bbb634e9f4
commit bba662ed6c
2 changed files with 6 additions and 27 deletions

View File

@ -19,11 +19,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import vip.xiaonuo.common.pojo.CommonResult;
import vip.xiaonuo.common.util.CommonResponseUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Whitelabel Error Page
@ -42,7 +39,7 @@ public class GlobalErrorViewController {
* @date 2022/2/11 16:11
**/
@RequestMapping("/errorView")
public void globalError(HttpServletRequest request, HttpServletResponse response) throws IOException {
public CommonResult<String> globalError(HttpServletRequest request) {
CommonResult<String> commonResult = new CommonResult<>(404, "路径不存在", null);
Object model = request.getAttribute("model");
if(ObjectUtil.isNotEmpty(model)) {
@ -60,6 +57,6 @@ public class GlobalErrorViewController {
exception.printStackTrace();
}
log.error(">>> {}", commonResult.getMsg());
CommonResponseUtil.renderError(response, commonResult.getMsg());
return commonResult;
}
}

View File

@ -15,13 +15,11 @@ package vip.xiaonuo.core.handler;
import cn.dev33.satoken.exception.SaTokenException;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpStatus;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.exceptions.PersistenceException;
import org.mybatis.spring.MyBatisSystemException;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
@ -35,13 +33,10 @@ import org.springframework.web.multipart.support.MissingServletRequestPartExcept
import vip.xiaonuo.auth.core.util.AuthExceptionUtil;
import vip.xiaonuo.common.exception.CommonException;
import vip.xiaonuo.common.pojo.CommonResult;
import vip.xiaonuo.common.util.CommonResponseUtil;
import vip.xiaonuo.common.util.CommonServletUtil;
import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.io.IOException;
import java.util.List;
import java.util.Set;
@ -117,22 +112,9 @@ public class GlobalExceptionUtil {
//文件上传错误特殊提示
commonResult = CommonResult.error("请选择要上传的文件并检查文件参数名称是否正确");
} else if (e instanceof SaTokenException) {
CommonResult<String> saTokenCommonResult = AuthExceptionUtil.getCommonResult(e);
HttpServletRequest request = CommonServletUtil.getRequest();
String accept = request.getHeader(Header.ACCEPT.getValue());
// 此时异常可能是SaToken的过滤器异常如果是流下载等接口需要直接渲染异常信息
if(ObjectUtil.isNotEmpty(accept) && accept.equals(MediaType.APPLICATION_OCTET_STREAM_VALUE)) {
try {
CommonResponseUtil.renderError(CommonServletUtil.getResponse(), e.getMessage());
return null;
} catch (IOException ioException) {
ioException.printStackTrace();
commonResult = CommonResult.error("服务器异常");
}
} else {
// 如果是SaToken相关异常则由AuthExceptionUtil处理
return saTokenCommonResult;
}
// 如果是SaToken相关异常则由AuthExceptionUtil处理
return AuthExceptionUtil.getCommonResult(e);
} else if(e instanceof MyBatisSystemException) {
// 如果是MyBatisSystemException
@ -146,7 +128,7 @@ public class GlobalExceptionUtil {
e.printStackTrace();
commonResult = CommonResult.error("数据操作异常");
}
}else {
} else {
e.printStackTrace();
commonResult = CommonResult.error("数据操作异常");
}