From 5b5553bb13ae1dbd31e0fb7edfadac76c0642a8c Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期二, 12 五月 2026 09:52:49 +0800
Subject: [PATCH] fix:全局异常处理
---
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/common/GlobalExceptionHandler.java | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/common/GlobalExceptionHandler.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/common/GlobalExceptionHandler.java
index 70eed57..422a0c4 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/common/GlobalExceptionHandler.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/common/GlobalExceptionHandler.java
@@ -23,6 +23,7 @@
public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
+ private static final String DEFAULT_SERVER_ERROR_MESSAGE = "服务器开小差啦,请稍后重试";
@ExceptionHandler(NotLoginException.class)
public ApiResponse<Void> handleNotLogin(NotLoginException e, HttpServletRequest request) {
@@ -60,6 +61,12 @@
return ApiResponse.fail(400, e.getMessage());
}
+ @ExceptionHandler(IllegalStateException.class)
+ public ApiResponse<Void> handleIllegalState(IllegalStateException e, HttpServletRequest request) {
+ log.warn("业务状态异常 [{} {}]: {}", request.getMethod(), request.getRequestURI(), e.getMessage(), e);
+ return ApiResponse.fail(500, resolveClientMessage(e.getMessage()));
+ }
+
@ExceptionHandler(HttpMessageNotReadableException.class)
public ApiResponse<Void> handleHttpMessageNotReadable(HttpMessageNotReadableException e, HttpServletRequest request) {
log.warn("请求体解析失败 [{} {}]", request.getMethod(), request.getRequestURI(), e);
@@ -75,7 +82,14 @@
@ExceptionHandler(Exception.class)
public ApiResponse<Void> handleException(Exception e, HttpServletRequest request) {
log.error("未捕获异常 [{} {}]", request.getMethod(), request.getRequestURI(), e);
- return ApiResponse.fail(500, "服务器内部错误");
+ return ApiResponse.fail(500, DEFAULT_SERVER_ERROR_MESSAGE);
+ }
+
+ private String resolveClientMessage(String message) {
+ if (message == null || message.trim().isEmpty()) {
+ return DEFAULT_SERVER_ERROR_MESSAGE;
+ }
+ return message;
}
private String resolveReadableMessage(Throwable throwable) {
--
Gitblit v1.7.1