package packt.java9.network.connect; import java.util.function.Function; public class RuntTimeExceptionWrapper { public static T lame(ExceptionalSupplier z) { try { return z.apply(); } catch (Exception e) { throw new WrapperException(e); } } public static Function lame(ExceptionalFunction f) { return (T r) -> { try { return f.apply(r); } catch (Exception e) { throw new WrapperException(e); } }; } public interface ExceptionalSupplier { T apply() throws Exception; } public interface ExceptionalFunction { R apply(T r) throws Exception; } public static class WrapperException extends RuntimeException { WrapperException(Exception e) { super(e); } } }