package java.lang;

/**
 * Thrown when an application tries to create an instance of a class using the {@code newInstance}
 * method in class {@code Class}, but the specified class object cannot be instantiated. The
 * instantiation can fail for a variety of reasons including but not limited to:
 *
 * <ul>
 * <li>the class object represents an abstract class, an interface, an array class, a primitive
 * type, or {@code void}
 * <li>the class has no nullary constructor
 * </ul>
 */
public class InstantiationException extends ReflectiveOperationException {

	/**
	 * Constructs an {@code InstantiationException} with no detail message.
	 */
	public InstantiationException() {
		throw new RuntimeException();
	}

	/**
	 * Constructs an {@code InstantiationException} with the specified detail message.
	 *
	 * @param s
	 *        the detail message.
	 */
	public InstantiationException(String s) {
		throw new RuntimeException();
	}
}