From 3e8c540408d78e1edeea3725b56bba3650198a1f Mon Sep 17 00:00:00 2001 From: shimingxy Date: Fri, 10 Jan 2025 09:03:52 +0800 Subject: [PATCH] Update GlobalExceptionHandler.java --- .../maxkey/web/GlobalExceptionHandler.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/maxkey-core/src/main/java/org/dromara/maxkey/web/GlobalExceptionHandler.java b/maxkey-core/src/main/java/org/dromara/maxkey/web/GlobalExceptionHandler.java index 649c44fb9..4cc3a6614 100644 --- a/maxkey-core/src/main/java/org/dromara/maxkey/web/GlobalExceptionHandler.java +++ b/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 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 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 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 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 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 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 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 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 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 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 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 handleBindException(BindException e) { BindingResult bindingResult = e.getBindingResult(); List 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 handleBusinessException(BusinessException e) { - log.error("业务自定义异常:{},{}",e.getCode(),e.getMessage(),e); + logger.error("业务自定义异常:{},{}",e.getCode(),e.getMessage(),e); return new Message<>(e.getCode(),e.getMessage()); } }