官网介绍
简单的说blockHandler/blockHandlerClass是给限流降级用的,异常为BlockException,fallback/fallbackClass是给除BlockException之外的业务异常兜底用的。
官方文档还说明。1.6.0 之前的版本 fallback 函数只针对降级异常(DegradeException)进行处理,不能针对业务异常进行处理。
说一个常见误区,限流降级能不能只配置blockHandlerClass而不配置blockHandler,实际上是不行的,如果这么配置,会抛出java.lang.reflect.UndeclaredThrowableException: null 异常。这里的blockHandlerClass指定类名,blockHandler作用是指定方法名。同理fallbackClass也是一样的。感觉官方文档说的不清不楚的。github有人提这个issue了才恍然大悟。blockHandlerClass不能独立配置,得配合提供方法名。