【发布时间】:2021-11-12 20:24:18
【问题描述】:
为什么全局异常处理不能处理过滤器中抛出的异常?
我的代码现在是这样的:
-
过滤方法
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; String token = httpServletRequest.getHeader("token"); if (token==null) throw new NoTokenException(); try { String s = jwtToken.parseJwt(token); httpServletRequest.setAttribute("id",s); }catch (Exception e){ throw new RuntimeException(); } filterChain.doFilter(servletRequest,servletResponse); } -
控制器建议类
@RestControllerAdvice public class GlobalExceptionHandle { @ExceptionHandler(Exception.class) public void Handle(Exception e, HttpServletResponse response) throws IOException { response.setContentType("application/json;charset=UTF-8"); response.getWriter().write("msg"); response.flushBuffer(); } }
【问题讨论】:
标签: java spring-boot