code: public static IndexOutOfBoundsException newIndexOutOfBoundsException(Throwable cause,
        String message, Object... args) {
  
      return (IndexOutOfBoundsException) new IndexOutOfBoundsException(format(message, args)).initCause(cause);
    }
docs: Constructs and initializes a new {@link IndexOutOfBoundsException} with the given {@link Throwable cause}
  and {@link String message} formatted with the given {@link Object[] arguments}.
  
  @param cause {@link Throwable} identified as the reason this {@link IndexOutOfBoundsException} was thrown.
  @param message {@link String} describing the {@link IndexOutOfBoundsException exception}.
  @param args {@link Object[] arguments} used to replace format placeholders in the {@link String message}.
  @return a new {@link IndexOutOfBoundsException} with the given {@link Throwable cause} and {@link String message}.
  @see java.lang.IndexOutOfBoundsException