| | |
| | | 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.http.converter.HttpMessageNotReadableException; |
| | | 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; |
| | |
| | | import com.ruoyi.common.exception.DemoModeException; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | | * 全局异常处理器 |
| | |
| | | public class GlobalExceptionHandler |
| | | { |
| | | private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); |
| | | |
| | | @Autowired |
| | | private ObjectMapper objectMapper; |
| | | |
| | | |
| | | @ExceptionHandler(HttpMessageNotReadableException.class) |
| | | public AjaxResult handleHttpMessageNotReadableException(HttpMessageNotReadableException e, HttpServletRequest request) |
| | | { |
| | | String requestURI = request.getRequestURI(); |
| | | log.error("请求地址'{}',参数异常'{}'", requestURI, e.getMessage()); |
| | | return AjaxResult.error(ResultConstants.THREE_INSTITUTION_PARAMM_NULL); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 通用异常 |
| | | */ |
| | | @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(); |
| | | } |
| | | |
| | | /** |
| | | * 权限校验异常 |
| | |
| | | @ExceptionHandler(MethodArgumentNotValidException.class) |
| | | public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) |
| | | { |
| | | log.error(e.getMessage(), e); |
| | | //log.error(e.getMessage(), e); |
| | | //log.error(e.getBindingResult().getFieldError()+""); |
| | | String message = e.getBindingResult().getFieldError().getDefaultMessage(); |
| | | return AjaxResult.error(message); |
| | | return AjaxResult.error(ResultConstants.PARAM_ERROR.getCode(),message); |
| | | } |
| | | |
| | | /** |