code: public static <V> CompletionStage<Try<V>> tryStage(CompletionStage<V> completionStage) {
          return completionStage.handle((value, throwable) -> {
              if (throwable != null) {
                  return failed(throwable);
              }
              return succeeded(value);
          });
      }
docs: Creates a CompletionStage that, when it completes, will capture into a Try whether the given completionStage
  was successful or not
  
  @param completionStage the completion stage that will complete
  @param <V>             the value type
  
  @return a Try which is the result of the call