code: public Request retry(int retryCount, boolean waitExponential) {
          if (retryCount < 0) {
              retryCount = 0;
          }
          if (retryCount > 10) {
              retryCount = 10;
          }
          if (retryCount > 3 && !waitExponential) {
              throw new IllegalArgumentException("retries > 3 only valid with wait");
          }
          this.retryCount = retryCount;
          this.waitExponential = waitExponential;
          return this;
      }
docs: Set the number of retries after the first request failed.
  <br>
  When `waitExponential` is set, then there will be {@link Thread#sleep(long)} between
  the retries. If the thread is interrupted, there will be an `InterruptedException`
  in the thrown `WebbException`. You can check this with {@link WebbException#getCause()}.
  The `interrupted` flag will be set to true in this case.
  
  @param retryCount This parameter holds the number of retries that will be made AFTER the
  initial send in the event of a error. If an error occurs on the last
  attempt an exception will be raised.<br>
  Values &gt; 10 are ignored (we're not gatling)
  @param waitExponential sleep during retry attempts (exponential backoff).
  For retry-counts more than 3, <tt>true</tt> is mandatory.
  @return <code>this</code> for method chaining (fluent API)