问题出现:使用aop中around进行日志输出时,ControllerAdvice进行异常捕获时只能捕获exception异常
原因:controller执行完成之后,使用aop获取切点数据时try catch抛出了Throwable异常导致controller进行捕获时只能捕获到exception异常
根本原因为执行顺序
当接收数据时为:Filter过滤器 > Interceptor拦截器 > ControllerAdvice > AOP。
当返回数据时为:AOP > ControllerAdvice > Interceptor拦截器 > Filter过滤器
在使用AOP进行日志记录时,由于在尝试获取切点数据时抛出的Throwable异常先于ControllerAdvice的异常处理,导致ControllerAdvice只能捕获到Exception。文章探讨了处理流程的顺序,即Filter>Interceptor>ControllerAdvice>AOP(接收时),以及AOP>ControllerAdvice>Interceptor>Filter(返回时),并指出这一顺序是问题的根本原因。
6693

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



