@SafeVarargs
    public static Optional<Predicate<Throwable>> createNegatedExceptionsPredicate(
        Class<? extends Throwable>... ignoreExceptions) {
        return exceptionPredicate(ignoreExceptions)
            .map(Predicate::negate);
    }
@Test
    public void buildIgnoreExceptionsPredicate() {
        Predicate<Throwable> predicate = PredicateCreator
            .createNegatedExceptionsPredicate(RuntimeException.class, BusinessException.class)
            .orElseThrow();

        then(predicate.test(new RuntimeException())).isFalse();
        then(predicate.test(new IllegalArgumentException())).isFalse();
        then(predicate.test(new Throwable())).isTrue();
        then(predicate.test(new Exception())).isTrue();
        then(predicate.test(new IOException())).isTrue();
        then(predicate.test(new BusinessException())).isFalse();
    }