1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17
18package java.lang;
19
20/**
21 * Thrown when the VM notices that a program tries to create a new
22 * instance of a class which has no visible constructors from the location where
23 * {@code new} is invoked.
24 * <p>
25 * Note that this can only occur when inconsistent class files are being loaded.
26 */
27public class InstantiationError extends IncompatibleClassChangeError {
28    private static final long serialVersionUID = -4885810657349421204L;
29
30    /**
31     * Constructs a new {@code InstantiationError} that includes the current
32     * stack trace.
33     */
34    public InstantiationError() {
35    }
36
37    /**
38     * Constructs a new {@code InstantiationError} with the current stack trace
39     * and the specified detail message.
40     *
41     * @param detailMessage
42     *            the detail message for this error.
43     */
44    public InstantiationError(String detailMessage) {
45        super(detailMessage);
46    }
47
48    /**
49     * Constructs a new {@code InstantiationError} with the current stack trace
50     * and the class that caused this error.
51     *
52     * @param clazz
53     *            the class that can not be instantiated.
54     */
55    InstantiationError(Class<?> clazz) {
56        super(clazz.getName());
57    }
58
59}
60