package io.gitlab.jfronny.libjf.generic; import java.util.function.Consumer; import java.util.function.Function; public class Try { public static void orElse(ThrowingRunnable tr, Consumer alternative) { tr.addHandler(alternative).run(); } public static T orElse(ThrowingSupplier tr, Function alternative) { return tr.addHandler(alternative).get(); } public static void orThrow(ThrowingRunnable tr) { try { tr.run(); } catch (Throwable e) { throw runtimeException(e); } } public static T orThrow(ThrowingSupplier tr) { try { return tr.get(); } catch (Throwable e) { throw runtimeException(e); } } protected static RuntimeException runtimeException(Throwable t) { return t instanceof RuntimeException e ? e : new RuntimeException(t); } }