code: public static <T, X extends Throwable> Tuple3<CompletableFuture<Subscription>, Runnable, CompletableFuture<Boolean>> forEachWithError(
              final Stream<T> stream, final Consumer<? super T> consumerElement, final Consumer<? super Throwable> consumerError) {
          return forEachEvent(stream, consumerElement, consumerError, () -> {
          });
  
      }
docs: Perform a forEach operation over the Stream    capturing any elements and errors in the supplied consumers,
  <pre>
  {@code
  Subscription next = StreanUtils.forEach(Stream.of(()->1,()->2,()->throw new RuntimeException(),()->4)
  .map(Supplier::getValue),System.out::println, e->e.printStackTrace());
  
  System.out.println("processed!");
  
  
  
  //prints
  1
  2
  RuntimeException Stack Trace on System.err
  4
  processed!
  
  }
  </pre>
  @param stream - the Stream to consume data from
  @param consumerElement To accept incoming elements from the Stream
  @param consumerError To accept incoming processing errors from the Stream
  @return A Tuple containing a Future with a Subscription to this publisher, a runnable to skip processing on a separate thread, and future that stores true / false depending on success