教育训练处考试制证系统后端
zf
2023-09-07 9e239cd627e9b48b35768ed09bcf51474b4fd5b3
ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
@@ -1,14 +1,22 @@
package com.ruoyi.framework.web.exception;
import javax.servlet.http.HttpServletRequest;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.constant.ResultConstants;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.exception.ExceptionInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingPathVariableException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import com.ruoyi.common.constant.HttpStatus;
@@ -16,6 +24,8 @@
import com.ruoyi.common.exception.DemoModeException;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import java.time.LocalDateTime;
/**
 * 全局异常处理器
@@ -27,6 +37,31 @@
{
    private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
    @Autowired
    private ObjectMapper objectMapper;
    /**
     * 通用异常
     */
    @ResponseBody
    @ExceptionHandler(value = BusinessException.class)
    public AjaxResult businessExceptionHandler(BusinessException e) throws JsonProcessingException {
        ExceptionInfo exceptionInfo = new ExceptionInfo();
        exceptionInfo.setTime(LocalDateTime.now());
        exceptionInfo.setCode(e.getCode());
        exceptionInfo.setMsg(e.getMessage());
        exceptionInfo.setCauseClass(e.getCauseClass());
        log.error(objectMapper.writeValueAsString(exceptionInfo));
        if(e.getMessage() == null || e.getMessage().isEmpty()){
            ResultConstants code = ResultConstants.prase(e.getCode());
            if(code != null)
                return AjaxResult.error(e.getCode(),code.getDesc());
        }else {
            return AjaxResult.error(e.getCode(),e.getMessage());
        }
        return AjaxResult.error();
    }
    /**
     * 权限校验异常
     */