Package com.yahoo.yolean
Class Exceptions
- java.lang.Object
-
- com.yahoo.yolean.Exceptions
-
public class Exceptions extends Object
Helper methods for handling exceptions- Author:
- bratseth
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Exceptions.RunnableThrowingInterruptedException
static interface
Exceptions.RunnableThrowingIOException
static interface
Exceptions.SupplierThrowingIOException<T>
-
Constructor Summary
Constructors Constructor Description Exceptions()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T extends Throwable>
Optional<T>findCause(Throwable t, Class<T> clazz)
Returns the first cause or the given throwable that is an instance ofclazz
static RuntimeException
throwUnchecked(Throwable e)
Allows treating checked exceptions as unchecked.static String
toMessageString(Throwable t)
Returns a user friendly error message string which includes information from all nested exceptions.static void
uncheck(Exceptions.RunnableThrowingIOException runnable)
Wraps any IOException thrown from a runnable in an UncheckedIOException.static void
uncheck(Exceptions.RunnableThrowingIOException runnable, String format, String... args)
Wraps any IOException thrown from a runnable in an UncheckedIOException w/message.static <T> T
uncheck(Exceptions.SupplierThrowingIOException<T> supplier)
Wraps any IOException thrown from a supplier in an UncheckedIOException.static <T> T
uncheck(Exceptions.SupplierThrowingIOException<T> supplier, String format, String... args)
Wraps any IOException thrown from a supplier in an UncheckedIOException w/message.static <T extends IOException>
voiduncheckAndIgnore(Exceptions.RunnableThrowingIOException runnable, Class<T> exceptionToIgnore)
Similar to uncheck(), except an exceptionToIgnore exception is silently ignored.static <R,T extends IOException>
RuncheckAndIgnore(Exceptions.SupplierThrowingIOException<R> supplier, Class<T> exceptionToIgnore)
Similar to uncheck(), except null is returned if exceptionToIgnore is thrown.static void
uncheckInterrupted(Exceptions.RunnableThrowingInterruptedException runnable)
static void
uncheckInterruptedAndRestoreFlag(Exceptions.RunnableThrowingInterruptedException runnable)
-
-
-
Method Detail
-
toMessageString
public static String toMessageString(Throwable t)
Returns a user friendly error message string which includes information from all nested exceptions.
The form of this string is
e.getMessage(): e.getCause().getMessage(): e.getCause().getCause().getMessage()...
In addition, some heuristics are used to clean up common cases where exception nesting causes bad messages.
-
findCause
public static <T extends Throwable> Optional<T> findCause(Throwable t, Class<T> clazz)
Returns the first cause or the given throwable that is an instance ofclazz
-
uncheck
public static void uncheck(Exceptions.RunnableThrowingIOException runnable)
Wraps any IOException thrown from a runnable in an UncheckedIOException.
-
uncheckInterrupted
public static void uncheckInterrupted(Exceptions.RunnableThrowingInterruptedException runnable)
-
uncheckInterruptedAndRestoreFlag
public static void uncheckInterruptedAndRestoreFlag(Exceptions.RunnableThrowingInterruptedException runnable)
-
uncheck
public static void uncheck(Exceptions.RunnableThrowingIOException runnable, String format, String... args)
Wraps any IOException thrown from a runnable in an UncheckedIOException w/message.
-
uncheckAndIgnore
public static <T extends IOException> void uncheckAndIgnore(Exceptions.RunnableThrowingIOException runnable, Class<T> exceptionToIgnore)
Similar to uncheck(), except an exceptionToIgnore exception is silently ignored.
-
uncheck
public static <T> T uncheck(Exceptions.SupplierThrowingIOException<T> supplier)
Wraps any IOException thrown from a supplier in an UncheckedIOException.
-
uncheck
public static <T> T uncheck(Exceptions.SupplierThrowingIOException<T> supplier, String format, String... args)
Wraps any IOException thrown from a supplier in an UncheckedIOException w/message.
-
uncheckAndIgnore
public static <R,T extends IOException> R uncheckAndIgnore(Exceptions.SupplierThrowingIOException<R> supplier, Class<T> exceptionToIgnore)
Similar to uncheck(), except null is returned if exceptionToIgnore is thrown.
-
throwUnchecked
public static RuntimeException throwUnchecked(Throwable e)
Allows treating checked exceptions as unchecked. Usage: throw throwUnchecked(e); The reason for the return type is to allow writing throw at the call site instead of just calling throwUnchecked. Just calling throwUnchecked means that the java compiler won't know that the statement will throw an exception, and will therefore complain on things such e.g. missing return value.
-
-