|
|
@@ -2,31 +2,37 @@ package com.sckw.core.filter;
|
|
|
|
|
|
import com.sckw.core.exception.SystemException;
|
|
|
import jakarta.servlet.*;
|
|
|
+import jakarta.servlet.http.HttpServletRequest;
|
|
|
+import jakarta.servlet.http.HttpServletResponse;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.web.filter.OncePerRequestFilter;
|
|
|
+import org.springframework.web.servlet.HandlerExceptionResolver;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
/**
|
|
|
* @author czh
|
|
|
- * @desc TODO
|
|
|
+ * @desc 过滤器的异常抛出
|
|
|
* @date 2023/6/14
|
|
|
*/
|
|
|
@Component
|
|
|
@Slf4j
|
|
|
-public class ExceptionFilterConfig implements Filter {
|
|
|
+public class ExceptionFilterConfig extends OncePerRequestFilter {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ @Qualifier("handlerExceptionResolver")
|
|
|
+ private HandlerExceptionResolver resolver;
|
|
|
+
|
|
|
@Override
|
|
|
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
|
|
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
|
|
try {
|
|
|
- filterChain.doFilter(servletRequest, servletResponse);
|
|
|
+ filterChain.doFilter(request, response);
|
|
|
} catch (SystemException e) {
|
|
|
- // 传递异常信息
|
|
|
-// servletRequest.setAttribute("code", e.getCode());
|
|
|
-// servletRequest.setAttribute("message", e.getMessage());
|
|
|
-// // 指定处理该请求的处理器
|
|
|
-// RequestDispatcher requestDispatcher = servletRequest.getRequestDispatcher("/error/throwError");
|
|
|
-// requestDispatcher.forward(servletRequest, servletResponse);
|
|
|
- log.error("请求异常:", e);
|
|
|
+ // 会交到 Springmvc的全局异常处理器那里
|
|
|
+ resolver.resolveException(request, response, null, e);
|
|
|
}
|
|
|
}
|
|
|
}
|