From 049bbdd1797c00276b69ca9f06204f9e13ce72db Mon Sep 17 00:00:00 2001 From: jiezhu <693337446@qq.com> Date: Thu, 18 Aug 2022 12:01:22 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E5=A0=86=E6=A0=88=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=96=B9=E6=B3=95=EF=BC=8C=E7=B2=BE=E7=AE=80ServiceEx?= =?UTF-8?q?ception=E5=BC=82=E5=B8=B8=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/exception/GlobalExceptionHandler.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index e04d528ad..e94b44901 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -22,6 +22,9 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; import javax.servlet.http.HttpServletRequest; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; /** * 全局异常处理器 @@ -103,6 +106,7 @@ public class GlobalExceptionHandler { */ @ExceptionHandler(ServiceException.class) public R handleServiceException(ServiceException e, HttpServletRequest request) { + filterStackTrace(e, "com.ruoyi"); log.error(e.getMessage(), e); Integer code = e.getCode(); return ObjectUtil.isNotNull(code) ? R.fail(code.intValue(), e.getMessage()) : R.fail(e.getMessage()); @@ -165,4 +169,13 @@ public class GlobalExceptionHandler { public R handleDemoModeException(DemoModeException e) { return R.fail("演示模式,不允许操作"); } + + /** + * 根据包名过滤堆栈 + * @param e Exception + * @param packageName 包名 + */ + private void filterStackTrace(Exception e, String packageName) { + e.setStackTrace(Arrays.stream(e.getStackTrace()).filter(item -> item.getClassName().contains(packageName) && item.getFileName().contains(".java")).toArray(StackTraceElement[]::new)); + } }