Given that silently swallowing exceptions is dumb, none.
It's entirely trivial to write such a thing yourself:
class ShootMyselfInLegToolkit {
@FunctionalInterface
public interface PermissiveSupplier<T> {
T supply() throws Exception;
}
public <T> T ohMyLegs(PermissiveSupplier<T> supplier) {
try {
return supplier.supply();
} catch (Exception itHurts) {
return null; // dear lord.
}
}
}
If you really wanna shove that in a library, by all means.
The slightly-less-silly functional libraries work like this: You supply both a (permissive - java's own j.u.f.Supplier cannot do this) supplier and an exception handler, so it looks like:
Tool.tryGet(() -> Files.readAllLines(Paths.get("foo.txt")), ioex -> { code to handle the exception });
You don't just get to go: Hey, no brackets, so I never press enter, and therefore this is 'fewer lines of code' and therefore, 'simpler', that's.. well, a very strange mode of thinking you got there.
What, in your words, does 'fluent' even mean? I recognize the term as applied to setters, getters, and builder methods, and it means: "No get/set prefix". That obviously doesn't apply here, so you clearly think it means something else. It's not in the java lang spec, so perhaps elaborate.
I fail to see how any of this stuff is simpler to understand or easier to program for, aside from silly style fights. I'd think most would agree that introducing a whole bunch of crazy libraries JUST because you find the commonly used style in the java community abhorrent - that's a bad way out. Writing code in a non-idiomatic fashion is a bad idea, regardless of language and regardless of how much you hate the common style. Just use a different language, or adjust your style tastes. Easier said than done, perhaps, but nevertheless - the better idea, by far.