code: @SafeVarargs
      public static <T> Function<Throwable, T> get(Class<? extends Throwable>... ignoredThrowableTypes) {
          return get(null, ignoredThrowableTypes);
      }
docs: Returns a function that can be used in the {@link CompletableFuture#exceptionally(Function)} method.
  It unwraps {@link CompletionException CompletionExceptions},
  {@link InvocationTargetException InvocationTargetExceptions} and {@link ExecutionException ExecutionExceptions}
  first, and then adds a fresh {@code CompletionException} as wrapper with the stacktrace of the caller of this
  method and logs it afterwards.
  The rewrapped exception is only logged if it is not in the {@code ignoredThrowableTypes}.
  
  @param <T> The return type of the function.
  @param ignoredThrowableTypes The throwable types that should never be logged.
  @return A function which logs the given throwable and returns {@code null}.