code: public static void rethrowException(Throwable t) throws Exception {
  		if (t instanceof Error) {
  			throw (Error) t;
  		}
  		else if (t instanceof Exception) {
  			throw (Exception) t;
  		}
  		else {
  			throw new Exception(t.getMessage(), t);
  		}
  	}
docs: Throws the given {@code Throwable} in scenarios where the signatures do allow to
  throw a Exception. Errors and Exceptions are thrown directly, other "exotic"
  subclasses of Throwable are wrapped in an Exception.
  
  @param t The throwable to be thrown.