@SafeVarargs
    public static <T> Function<Throwable, T> get(Class<? extends Throwable>... ignoredThrowableTypes) {
        return get(null, ignoredThrowableTypes);
    }
@ SafeVarargs public static < T > Function < Throwable , T > get ( Class < ? extends Throwable > ... ignoredThrowableTypes ) { return get ( null , ignoredThrowableTypes ) ; }
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}.