关于SpringMVC@ControllerAdvice()全局注解的一些注意点,以及Filter使用@ControllerAdvice进行全局异常处理

文章指出Filter基于Servlet,其抛出的异常不会被SpringMVC的HandlerExceptionResolvers自动处理,因此不能直接用@ControllerAdvice捕获。但可以通过注入HandlerExceptionResolver手动处理,例如在遇到ExpiredJwtException时,解析JWTtoken失败,可以抛出异常并利用handlerExceptionResolver进行处理。

重要的事情说三遍:Filter是基于Servlet的,其中抛出的异常是不会被SpringMVC的HandlerExceptionResolvers处理的!!!
重要的事情说三遍:Filter是基于Servlet的,其中抛出的异常是不会被SpringMVC的HandlerExceptionResolvers处理的!!!
重要的事情说三遍:Filter是基于Servlet的,其中抛出的异常是不会被SpringMVC的HandlerExceptionResolvers处理的!!!
也就是无法直接使用@ControllerAdvice进行处理

##但是:可以注入HandlerExceptionResolvers 手动throw给他,这样也可以被@ControllerAdvice捕获:


    @Lazy
    @Autowired
    HandlerExceptionResolver handlerExceptionResolver;
            /**
             * jwt过期处理
             * 抛出Auth异常 全局异常处理
             */
            Claims claims = null;
            try {
                claims = JwtUtil.parseJWT(token);
            }catch (ExpiredJwtException expiredJwtException){

                handlerExceptionResolver.resolveException(request, response,null,new ExpiredJwtException(null,claims,"您的登录已过期!"));
            }
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值