@Test public void shouldLiftTryPartialFunction() { AtomicInteger integer = new AtomicInteger(); Function5<Integer, Integer, Integer, Integer, Integer, Integer> divByZero = (i1, i2, i3, i4, i5) -> 10 / integer.get(); Function5<Integer, Integer, Integer, Integer, Integer, Try<Integer>> divByZeroTry = Function5.liftTry(divByZero); Try<Integer> res = divByZeroTry.apply(0, 0, 0, 0, 0); assertThat(res.isFailure()).isTrue(); assertThat(res.getCause()).isNotNull(); assertThat(res.getCause().getMessage()).isEqualToIgnoringCase("/ by zero"); integer.incrementAndGet(); res = divByZeroTry.apply(1, 2, 3, 4, 5); assertThat(res.isSuccess()).isTrue(); assertThat(res.get()).isEqualTo(10); }