@Test
public void testTryOrVoid2() {

    final AtomicInteger latch = new AtomicInteger(0);
    final Fun.ThrowingBiConsumer<String, Integer> consumer = (key, newValue) -> {
        if (newValue % 3 == 0) {
            throw new Exception("multiples of three are disallowed");
        }
        latch.addAndGet(newValue);
    };
    Stream.generate(new AtomicInteger(0)::incrementAndGet).limit(10)
            .map(zipValuesWithKeyFunc(String::valueOf))
            .forEach(onEntry(tryOrVoid2(consumer)));
    assertEquals("latch value should be", 1 + 2 + 4 + 5 + 7 + 8 + 10, latch.get());
}