Sentinel icon indicating copy to clipboard operation
Sentinel copied to clipboard

Global @ControllerAdvice or exception handler for Spring Web | Spring的全局异常处理器,会导致熔断规则(异常数规则)失效

Open kangarooking opened this issue 3 years ago • 6 comments

现在有一个问题就是我创建了一个统一的BlockException处理 (实现BlockExceptionHandler),我希望在我的项目中对限流,和熔断做统一的降级处理,但是问题就是该项目中有全局异常处理器,导致我配置的熔断规则(根据异常数来判断是否熔断)失效,猜测原因是 spring的全局异常处理器将服务抛出的异常捕获到并处理了,sentinel那边就捕捉不到异常,从而无法统计异常数。 我想问问这种情况有什么解决办法吗,因为全局异常处理器是项目之前有的也不好去除。


Spring Interceptor cannot record the exception if a global @ControllerAdvice or exception handler has been set.

kangarooking avatar Nov 26 '21 08:11 kangarooking

有大佬可以解答一下吗,谢谢啦

kangarooking avatar Nov 30 '21 08:11 kangarooking

有大佬可以解答一下吗,谢谢啦

controller返回异常 会按照controller -> aspect -> controllerAdvice -> interceptor -> filter 因为异常统计用的是HandlerInterceptor实现进行拦截统计,全局用@ControllerAdvice已经将异常处理完毕,所以无法统计 @sczyh30 @kangarooking

roy500 avatar Dec 07 '21 03:12 roy500

#2516

roy500 avatar Dec 31 '21 03:12 roy500

#2516

没有用,新版没有那些了 sentinelWebInterceptor.exceptionControllerAdviceExit(req,e); 没有方法了

cocoyes avatar May 11 '22 02:05 cocoyes

说是1.8.4解决这个问题,但我测试没成功,有人成功吗?

nicksoki13 avatar Jun 18 '22 08:06 nicksoki13

#2809 @sczyh30

liufeiyu1002 avatar Aug 03 '22 13:08 liufeiyu1002

要不要处理??别人提交了修复,,也不说明原因,,拒绝合并。。

wangqingchengsg avatar Nov 21 '22 03:11 wangqingchengsg

要不要处理??别人提交了修复,,也不说明原因,,拒绝合并。。

wangqingchengsg avatar Nov 21 '22 03:11 wangqingchengsg