云
6 小时以前 7db504cbc6d08e50666c86a3dbd6c7da5147b630
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
@@ -17,6 +17,7 @@
import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
import com.google.common.util.concurrent.UncheckedExecutionException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.ValidationException;
@@ -34,6 +35,7 @@
import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.context.request.async.AsyncRequestNotUsableException;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.servlet.NoHandlerFoundException;
@@ -67,6 +69,14 @@
    private final ApiErrorLogCommonApi apiErrorLogApi;
    /** 客户端已断开时响应不可再写;注入 HttpServletResponse 使 Spring MVC 直接结束处理。 */
    @ExceptionHandler(AsyncRequestNotUsableException.class)
    public void asyncRequestNotUsableExceptionHandler(HttpServletRequest request,
                                                      HttpServletResponse response,
                                                      AsyncRequestNotUsableException ex) {
        log.debug("[asyncRequestNotUsableExceptionHandler][客户端已断开 uri={}]", request.getRequestURI());
    }
    /**
     * 处理所有异常,主要是提供给 Filter 使用
     * 因为 Filter 不走 SpringMVC 的流程,但是我们又需要兜底处理异常,所以这里提供一个全量的异常处理过程,保持逻辑统一。