code: @Override public T get() throws IOException, EtcdException, EtcdAuthenticationException, TimeoutException {
      waitForPromiseSuccess();
  
      if (response != null) {
        return response;
      } else {
        if (this.exception instanceof EtcdException) {
          throw (EtcdException) this.exception;
        } if (this.exception instanceof EtcdAuthenticationException) {
          throw (EtcdAuthenticationException) this.exception;
        } else if (this.exception instanceof IOException) {
          throw (IOException) this.exception;
        } else if (this.exception instanceof io.netty.handler.timeout.TimeoutException) {
          throw new TimeoutException();
        } else {
          throw new IOException(this.exception);
        }
      }
    }
docs: Get the response. (Blocking)
  
  Use addListener to fetch the value in a non blocking way.
  
  @return the response
  @throws IOException                  on fail (Will be ReadTimeoutException if timeout occurred)
  @throws EtcdException                on etcd fail
  @throws EtcdAuthenticationException  on authentication failure
  @throws TimeoutException             on Timeout