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