From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 14 十月 2025 16:34:22 +0800
Subject: [PATCH] 改bug

---
 server/meeting/meeting_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java b/server/meeting/meeting_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java
new file mode 100644
index 0000000..c7866a7
--- /dev/null
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java
@@ -0,0 +1,67 @@
+package com.doumee.config.handler;
+
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.service.business.third.model.ApiResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authz.UnauthorizedException;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鍏ㄥ眬寮傚父澶勭悊
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Slf4j
+@RestControllerAdvice
+public class GlobalExceptionHandler {
+
+    /**
+     * 涓氬姟寮傚父澶勭悊
+     */
+    @ExceptionHandler(BusinessException.class)
+    public <T> ApiResponse<T> handleBusinessException (BusinessException e) {
+        log.error(e.getMessage(), e);
+        return ApiResponse.failed(e.getCode(), e.getMessage());
+    }
+
+    /**
+     * 鏃犳潈闄愬紓甯稿鐞�
+     */
+    @ExceptionHandler(UnauthorizedException.class)
+    public <T> ApiResponse<T> handleUnauthorizedException (UnauthorizedException e) {
+        log.error(e.getMessage(), e);
+        return ApiResponse.failed("娌℃湁鎿嶄綔鏉冮檺");
+    }
+
+    /**
+     * 鍙傛暟楠岃瘉鏈�氳繃寮傚父澶勭悊
+     */
+    @ExceptionHandler(MethodArgumentNotValidException.class)
+    public <T> ApiResponse<T> handleMethodArgumentNotValidException (MethodArgumentNotValidException e) {
+        log.error(e.getMessage(), e);
+        BindingResult bindingResult = e.getBindingResult();
+        List<String> errors = new ArrayList<>();
+        for(FieldError fieldError : bindingResult.getFieldErrors()){
+            errors.add(fieldError.getDefaultMessage());
+        }
+        return ApiResponse.failed(ResponseStatus.BAD_REQUEST.getCode(), StringUtils.join(errors));
+    }
+
+    /**
+     * 鍏跺畠寮傚父澶勭悊
+     */
+    @ExceptionHandler(Exception.class)
+    public <T> ApiResponse<T> handleException (Exception e) {
+        log.error(e.getMessage(), e);
+        return ApiResponse.failed(ResponseStatus.SERVER_ERROR, e);
+    }
+}

--
Gitblit v1.9.3