Commit 5b6723fc3c7fd7813acd324b23ce66d4e52546b8
1 parent
3adfeb37
fix:【framework 框架】GlobalExceptionHandler 兼容更多 ServiceException 情况
Showing
1 changed file
with
6 additions
and
3 deletions
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
| @@ -115,9 +115,6 @@ public class GlobalExceptionHandler { | @@ -115,9 +115,6 @@ public class GlobalExceptionHandler { | ||
| 115 | if (ex instanceof AccessDeniedException) { | 115 | if (ex instanceof AccessDeniedException) { |
| 116 | return accessDeniedExceptionHandler(request, (AccessDeniedException) ex); | 116 | return accessDeniedExceptionHandler(request, (AccessDeniedException) ex); |
| 117 | } | 117 | } |
| 118 | - if (ex instanceof UncheckedExecutionException && ex.getCause() != ex) { | ||
| 119 | - return allExceptionHandler(request, ex.getCause()); | ||
| 120 | - } | ||
| 121 | return defaultExceptionHandler(request, ex); | 118 | return defaultExceptionHandler(request, ex); |
| 122 | } | 119 | } |
| 123 | 120 | ||
| @@ -321,6 +318,12 @@ public class GlobalExceptionHandler { | @@ -321,6 +318,12 @@ public class GlobalExceptionHandler { | ||
| 321 | */ | 318 | */ |
| 322 | @ExceptionHandler(value = Exception.class) | 319 | @ExceptionHandler(value = Exception.class) |
| 323 | public CommonResult<?> defaultExceptionHandler(HttpServletRequest req, Throwable ex) { | 320 | public CommonResult<?> defaultExceptionHandler(HttpServletRequest req, Throwable ex) { |
| 321 | + // 特殊:如果是 ServiceException 的异常,则直接返回 | ||
| 322 | + // 例如说:https://gitee.com/zhijiantianya/yudao-cloud/issues/ICSSRM、https://gitee.com/zhijiantianya/yudao-cloud/issues/ICT6FM | ||
| 323 | + if (ex.getCause() != null && ex.getCause() instanceof ServiceException) { | ||
| 324 | + return serviceExceptionHandler((ServiceException) ex.getCause()); | ||
| 325 | + } | ||
| 326 | + | ||
| 324 | // 情况一:处理表不存在的异常 | 327 | // 情况一:处理表不存在的异常 |
| 325 | CommonResult<?> tableNotExistsResult = handleTableNotExists(ex); | 328 | CommonResult<?> tableNotExistsResult = handleTableNotExists(ex); |
| 326 | if (tableNotExistsResult != null) { | 329 | if (tableNotExistsResult != null) { |