code: void handleException(Throwable t) {
      if (failure == null) {
        failure = t;
  
        for (ContextualFuture<?> responseFuture : responseFutures.values()) {
          responseFuture.context.executor().execute(() -> responseFuture.completeExceptionally(t));
        }
        responseFutures.clear();
  
        for (Listener<Throwable> listener : exceptionListeners) {
          listener.accept(t);
        }
      }
    }
docs: Handles an exception.
  
  @param t The exception to handle.