From ea1564603882707af9583a6381e2bd7a118d6fba Mon Sep 17 00:00:00 2001 From: thinkgem Date: Wed, 25 Sep 2019 23:06:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20500=20=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeesite/common/lang/ExceptionUtils.java | 22 +++++++++++++++++++ .../src/main/resources/views/error/500.html | 13 ++++------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/com/jeesite/common/lang/ExceptionUtils.java b/common/src/main/java/com/jeesite/common/lang/ExceptionUtils.java index 314e146d..5e167b2a 100644 --- a/common/src/main/java/com/jeesite/common/lang/ExceptionUtils.java +++ b/common/src/main/java/com/jeesite/common/lang/ExceptionUtils.java @@ -31,6 +31,28 @@ public class ExceptionUtils { } return ex; } + + public static String getExceptionMessage(Throwable ex){ + String message = null; + Throwable e = ex; + while (true){ + if (e == null){ + break; + } + if (StringUtils.startsWith(e.getMessage(), "msg:")){ + message = StringUtils.replace(e.getMessage(), "msg:", ""); + break; + }else if ("com.jeesite.common.service.ServiceException" + .equals(e.getClass().getName())){ + message = e.getMessage(); + break; + } + if (StringUtils.isBlank(message)){ + e = e.getCause(); + } + } + return message; + } /** * 将ErrorStack转化为String. diff --git a/modules/core/src/main/resources/views/error/500.html b/modules/core/src/main/resources/views/error/500.html index 8a60ec2a..acf4186b 100644 --- a/modules/core/src/main/resources/views/error/500.html +++ b/modules/core/src/main/resources/views/error/500.html @@ -7,17 +7,12 @@ var ex; if (isBlank(message)){ ex = @ExceptionUtils.getThrowable(request); if (ex != null){ - for (e in [ex, ex.cause!, ex.cause.cause!]){ - if (@StringUtils.startsWith(e.message!, "msg:")){ - message = @StringUtils.replace(e.message!, "msg:", ""); - break; - }else if (type.fullName(e) == 'com.jeesite.common.service.ServiceException'){ - message = e.message!; - break; - } + var m = @ExceptionUtils.getExceptionMessage(ex); + if (isNotBlank(m)){ + message = m; } if (!@StringUtils.equals(message, "演示模式,不允许操作!")){ - @org.slf4j.LoggerFactory.getLogger("error/500").error(ex.message, ex); + @org.slf4j.LoggerFactory.getLogger("error/500").error('', ex); } } }