code: public static void tryRethrowIOException(Throwable t) throws IOException {
  		if (t instanceof IOException) {
  			throw (IOException) t;
  		}
  		else if (t instanceof RuntimeException) {
  			throw (RuntimeException) t;
  		}
  		else if (t instanceof Error) {
  			throw (Error) t;
  		}
  	}
docs: Tries to throw the given {@code Throwable} in scenarios where the signatures allows only IOExceptions
  (and RuntimeException and Error). Throws this exception directly, if it is an IOException,
  a RuntimeException, or an Error. Otherwise does nothing.
  
  @param t The Throwable to be thrown.