| | |
| | | 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; |
| | |
| | | import com.ruoyi.common.exception.DemoModeException; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | | * 全局异常处理器 |
| | |
| | | { |
| | | 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(); |
| | | } |
| | | |
| | | /** |
| | | * 权限校验异常 |
| | | */ |