@Override
    protected RpcResponse doExecute(ClientRequestContext ctx, RpcRequest req, CircuitBreakerCallback callback)
            throws Exception {
        final RpcResponse response;
        try {
            response = unwrap().execute(ctx, req);
        } catch (Throwable cause) {
            reportSuccessOrFailure(
                    callback, ruleWithContent().shouldReportAsSuccess(ctx, null, cause), ctx, cause);
            throw cause;
        }

        response.handle((unused1, cause) -> {
            reportSuccessOrFailure(
                    callback, ruleWithContent().shouldReportAsSuccess(ctx, response, cause), ctx, cause);
            return null;
        });
        return response;
    }
Creates a new instance that decorates the specified {@link RpcClient}.
core/src/main/java/com/linecorp/armeria/client/circuitbreaker/CircuitBreakerRpcClient.java