浏览代码

Update GlobalExceptionHandler.java

shimingxy 5 月之前
父节点
当前提交
3e8c540408
共有 1 个文件被更改,包括 20 次插入15 次删除
  1. 20 15
      maxkey-core/src/main/java/org/dromara/maxkey/web/GlobalExceptionHandler.java

+ 20 - 15
maxkey-core/src/main/java/org/dromara/maxkey/web/GlobalExceptionHandler.java

@@ -35,6 +35,7 @@ import org.springframework.web.bind.MissingServletRequestParameterException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
+import org.springframework.web.servlet.NoHandlerFoundException;
 
 import java.util.List;
 import java.util.Objects;
@@ -51,8 +52,7 @@ import java.util.Objects;
  */
 @RestControllerAdvice
 public class GlobalExceptionHandler {
-    private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
-
+	 private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
 
     /**
      * 缺少请求体异常处理器
@@ -61,7 +61,7 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(HttpMessageNotReadableException.class)
     public Message<Void> parameterBodyMissingExceptionHandler(HttpMessageNotReadableException e, HttpServletRequest request) {
         String requestURI = request.getRequestURI();
-        log.error("请求地址'{}',请求体缺失'{}'", requestURI, e.getMessage(),e);
+        logger.error("请求地址'{}',请求体缺失'{}'", requestURI, e.getMessage(),e);
         return new Message<>(Message.FAIL, "缺少请求体");
     }
 
@@ -69,7 +69,7 @@ public class GlobalExceptionHandler {
     @ExceptionHandler({MissingServletRequestParameterException.class})
     public Message<Void> bindExceptionHandler(MissingServletRequestParameterException e,HttpServletRequest request) {
         String requestURI = request.getRequestURI();
-        log.error("请求地址'{}',get方式请求参数'{}'必传", requestURI, e.getMessage(),e);
+        logger.error("请求地址'{}',get方式请求参数'{}'必传", requestURI, e.getMessage(),e);
         return new Message<>(Message.FAIL, "请求的对象参数校验异常");
     }
 
@@ -79,7 +79,7 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
     public Message<Void> handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, HttpServletRequest request) {
         String requestURI = request.getRequestURI();
-        log.error("请求地址 '{}',不支持'{}' 请求", requestURI, e.getMethod(),e);
+        logger.error("请求地址 '{}',不支持'{}' 请求", requestURI, e.getMethod(),e);
         return new Message<>(HttpStatus.METHOD_NOT_ALLOWED.value(),HttpStatus.METHOD_NOT_ALLOWED.getReasonPhrase());
     }
 
@@ -93,7 +93,7 @@ public class GlobalExceptionHandler {
     public Message<Void> methodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e, HttpServletRequest request) {
         String requestURI = request.getRequestURI();
         String error = String.format("%s 应该是 %s 类型", e.getName(), e.getRequiredType().getSimpleName());
-        log.error("请求地址'{}',{},参数类型不正确", requestURI,error,e);
+        logger.error("请求地址'{}',{},参数类型不正确", requestURI,error,e);
         return new Message<>(Message.FAIL, "参数类型不正确");
     }
 
@@ -103,7 +103,12 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(Exception.class)
     public Message<Void> handleException(Exception e, HttpServletRequest request) {
         String requestURI = request.getRequestURI();
-        log.error("请求地址'{}',发生系统异常.", requestURI, e);
+        logger.info("Request IpAddress : {} " , WebContext.getRequestIpAddress(request));
+        if(e instanceof NoHandlerFoundException) {
+        	//NoHandlerFoundException
+        }else {
+        	logger.error("请求地址'{}',发生系统异常.", requestURI, e);
+        }
         return new Message<>(Message.FAIL, HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase());
     }
 
@@ -115,7 +120,7 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(UnexpectedTypeException.class)
     public Message<String> unexpectedTypeHandler(UnexpectedTypeException e)
     {
-        log.error("类型转换错误:{}",e.getMessage(), e);
+        logger.error("类型转换错误:{}",e.getMessage(), e);
         return  new Message<>(HttpStatus.INTERNAL_SERVER_ERROR.value(),e.getMessage());
     }
 
@@ -129,7 +134,7 @@ public class GlobalExceptionHandler {
     {
         BindingResult bindingResult =  e.getBindingResult();
         List<ObjectError> errors = bindingResult.getAllErrors();
-        log.error("参数验证异常:{}",e.getMessage(), e);
+        logger.error("参数验证异常:{}",e.getMessage(), e);
         if (!errors.isEmpty()) {
             // 只显示第一个错误信息
             return new Message<>(HttpStatus.BAD_REQUEST.value(), errors.get(0).getDefaultMessage());
@@ -141,14 +146,14 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(RuntimeException.class)
     public Message<String> runtimeExceptionHandler(RuntimeException e, HttpServletRequest request) {
         String requestURI = request.getRequestURI();
-        log.error("请求地址'{}',捕获运行时异常'{}'", requestURI, e.getMessage(),e);
+        logger.error("请求地址'{}',捕获运行时异常'{}'", requestURI, e.getMessage(),e);
         return new Message<>(Message.FAIL, e.getMessage());
     }
     // 系统级别异常
     @ExceptionHandler(Throwable.class)
     public Message<String> throwableExceptionHandler(Throwable e,HttpServletRequest request) {
         String requestURI = request.getRequestURI();
-        log.error("请求地址'{}',捕获系统级别异常'{}'", requestURI,e.getMessage(),e);
+        logger.error("请求地址'{}',捕获系统级别异常'{}'", requestURI,e.getMessage(),e);
         return new Message<>(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());
     }
 
@@ -161,7 +166,7 @@ public class GlobalExceptionHandler {
     public Message<String> illegalArgumentException(IllegalArgumentException e)
     {
         String message = e.getMessage();
-        log.error("IllegalArgumentException:{}",e.getMessage(),e);
+        logger.error("IllegalArgumentException:{}",e.getMessage(),e);
         if (Objects.nonNull(message)) {
             //错误信息
             return new Message<>(HttpStatus.BAD_REQUEST.value(),message);
@@ -177,7 +182,7 @@ public class GlobalExceptionHandler {
     public Message<String> invalidFormatException(InvalidFormatException e)
     {
         String message = e.getMessage();
-        log.error("InvalidFormatException:{}",e.getMessage(),e);
+        logger.error("InvalidFormatException:{}",e.getMessage(),e);
         if (Objects.nonNull(message)) {
             //错误信息
             return new Message<>(HttpStatus.BAD_REQUEST.value(),message);
@@ -194,7 +199,7 @@ public class GlobalExceptionHandler {
     public Message<Void> handleBindException(BindException e) {
         BindingResult bindingResult =  e.getBindingResult();
         List<ObjectError> errors = bindingResult.getAllErrors();
-        log.error("参数验证异常:{}",e.getMessage(), e);
+        logger.error("参数验证异常:{}",e.getMessage(), e);
         if (!errors.isEmpty()) {
             // 只显示第一个错误信息
             return new Message<>(HttpStatus.BAD_REQUEST.value(), errors.get(0).getDefaultMessage());
@@ -209,7 +214,7 @@ public class GlobalExceptionHandler {
      */
     @ExceptionHandler(BusinessException.class)
     public Message<String> handleBusinessException(BusinessException e) {
-        log.error("业务自定义异常:{},{}",e.getCode(),e.getMessage(),e);
+        logger.error("业务自定义异常:{},{}",e.getCode(),e.getMessage(),e);
         return new Message<>(e.getCode(),e.getMessage());
     }
 }