package org.checkerframework.javacutil;

import org.checkerframework.checker.formatter.qual.FormatMethod;
import org.checkerframework.checker.nullness.qual.Nullable;

/**
 * Exception type indicating a mistake by an end user in using the Checker Framework, such as
 * incorrect command-line arguments.
 */
@SuppressWarnings("serial")
public class UserError extends RuntimeException {

  /**
   * Constructs a new CheckerError with the specified detail message.
   *
   * @param message the detail message
   */
  public UserError(String message) {
    super(message);
    if (message == null) {
      throw new Error("Must have a detail message.");
    }
  }

  /**
   * Constructs a new CheckerError with a detail message composed from the given arguments.
   *
   * @param fmt the format string
   * @param args the arguments for the format string
   */
  @FormatMethod
  public UserError(String fmt, @Nullable Object... args) {
    this(String.format(fmt, args));
  }
}
