code: public <X extends Throwable> V getValueOrElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
  
          LettuceAssert.notNull(exceptionSupplier, "Supplier function must not be null");
  
          if (hasValue()) {
              return value;
          }
  
          throw exceptionSupplier.get();
      }
docs: Return the contained value, if present, otherwise throw an exception to be created by the provided supplier.
  
  @param <X> Type of the exception to be thrown
  @param exceptionSupplier The supplier which will return the exception to be thrown, must not be {@literal null}.
  @return the present value
  @throws X if there is no value present