@Override
    public final O execute(ClientRequestContext ctx, I req) throws Exception {
        try {
            final CircuitBreakerCallback callback = handler.tryRequest(ctx, req);
            if (callback == null) {
                return unwrap().execute(ctx, req);
            }
            return doExecute(ctx, req, callback);
        } catch (Exception ex) {
            if (fallback != null && handler().isCircuitBreakerException(ex)) {
                final O res = fallback.apply(ctx, req);
                return requireNonNull(res, "fallback.apply() returned null.");
            }
            throw ex;
        }
    }
Returns the {@link CircuitBreakerRule} derived from {@link #ruleWithContent()}.

@throws IllegalStateException if the {@link CircuitBreakerRuleWithContent} is not set
core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClient.java