package org.junit.internal;
Miscellaneous functions dealing with Throwable
. Author: kcooney@google.com (Kevin Cooney) Since: 4.12
/**
* Miscellaneous functions dealing with {@code Throwable}.
*
* @author kcooney@google.com (Kevin Cooney)
* @since 4.12
*/
public final class Throwables {
private Throwables() {
}
Rethrows the given Throwable
, allowing the caller to declare that it throws Exception
. This is useful when your callers have nothing reasonable they can do when a Throwable
is thrown. This is declared to return Exception
so it can be used in a throw
clause: try {
doSomething();
} catch (Throwable e} {
throw Throwables.rethrowAsException(e);
}
doSomethingLater();
Params: - e – exception to rethrow
Returns: does not return anything Since: 4.12
/**
* Rethrows the given {@code Throwable}, allowing the caller to
* declare that it throws {@code Exception}. This is useful when
* your callers have nothing reasonable they can do when a
* {@code Throwable} is thrown. This is declared to return {@code Exception}
* so it can be used in a {@code throw} clause:
* <pre>
* try {
* doSomething();
* } catch (Throwable e} {
* throw Throwables.rethrowAsException(e);
* }
* doSomethingLater();
* </pre>
*
* @param e exception to rethrow
* @return does not return anything
* @since 4.12
*/
public static Exception rethrowAsException(Throwable e) throws Exception {
Throwables.<Exception>rethrow(e);
return null; // we never get here
}
@SuppressWarnings("unchecked")
private static <T extends Throwable> void rethrow(Throwable e) throws T {
throw (T) e;
}
}