在过滤器中引入org.springframework.web.servlet.HandlerExceptionResolver
@Autowired
@Qualifier("handlerExceptionResolver")
private HandlerExceptionResolver resolver;
// doFilter中处理
if (条件1) {
if (条件2) {
resolver.resolveException(request, response, null, new Myself403ForbiddenException("403ForbiddenException"));
return;
}
filterChain.doFilter(servletRequest, servletResponse);
return;
}
Spring Boot全局异常处理@RestControllerAdvice只会捕获所有Controller层抛出的异常,在filter当中抛出的异常GlobalExceptionHandler类是感知不到的,所以在filter当中抛出的异常最终会被Spring框架自带的全局异常处理类BasicErrorController捕获
附:https://blog.youkuaiyun.com/m0_37731470/article/details/116754395
本文介绍了在SpringBoot中,如何在filter中使用HandlerExceptionResolver处理异常,以及`@RestControllerAdvice`仅捕获Controller层异常,filter中的异常会被BasicErrorController处理的细节。
3267

被折叠的 条评论
为什么被折叠?



