summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/yolean/Exceptions.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/yolean/Exceptions.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/yolean/Exceptions.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/yolean/Exceptions.java b/vespajlib/src/main/java/com/yahoo/yolean/Exceptions.java
index 89b4e76368b..4f3f048eb0c 100644
--- a/vespajlib/src/main/java/com/yahoo/yolean/Exceptions.java
+++ b/vespajlib/src/main/java/com/yahoo/yolean/Exceptions.java
@@ -4,6 +4,7 @@ package com.yahoo.yolean;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.util.Optional;
+import java.util.function.Function;
/**
* Helper methods for handling exceptions
@@ -129,6 +130,14 @@ public class Exceptions {
@FunctionalInterface public interface RunnableThrowingInterruptedException { void run() throws InterruptedException; }
/**
+ * Wraps any IOException thrown from a function in an UncheckedIOException.
+ */
+ public static <T, R> Function<T, R> uncheck(FunctionThrowingIOException<T, R> function) {
+ return t -> uncheck(() -> function.map(t));
+ }
+ @FunctionalInterface public interface FunctionThrowingIOException<T, R> { R map(T t) throws IOException; }
+
+ /**
* Wraps any IOException thrown from a supplier in an UncheckedIOException.
*/
public static <T> T uncheck(SupplierThrowingIOException<T> supplier) {