1/* 2 * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26package java.lang; 27 28/** 29 * Thrown to indicate that an assertion has failed. 30 * 31 * <p>The seven one-argument public constructors provided by this 32 * class ensure that the assertion error returned by the invocation: 33 * <pre> 34 * new AssertionError(<i>expression</i>) 35 * </pre> 36 * has as its detail message the <i>string conversion</i> of 37 * <i>expression</i> (as defined in section 15.18.1.1 of 38 * <cite>The Java™ Language Specification</cite>), 39 * regardless of the type of <i>expression</i>. 40 * 41 * @since 1.4 42 */ 43public class AssertionError extends Error { 44 private static final long serialVersionUID = -5013299493970297370L; 45 46 /** 47 * Constructs an AssertionError with no detail message. 48 */ 49 public AssertionError() { 50 } 51 52 /** 53 * This internal constructor does no processing on its string argument, 54 * even if it is a null reference. The public constructors will 55 * never call this constructor with a null argument. 56 */ 57 private AssertionError(String detailMessage) { 58 super(detailMessage); 59 } 60 61 /** 62 * Constructs an AssertionError with its detail message derived 63 * from the specified object, which is converted to a string as 64 * defined in section 15.18.1.1 of 65 * <cite>The Java™ Language Specification</cite>. 66 *<p> 67 * If the specified object is an instance of {@code Throwable}, it 68 * becomes the <i>cause</i> of the newly constructed assertion error. 69 * 70 * @param detailMessage value to be used in constructing detail message 71 * @see Throwable#getCause() 72 */ 73 public AssertionError(Object detailMessage) { 74 this("" + detailMessage); 75 if (detailMessage instanceof Throwable) 76 initCause((Throwable) detailMessage); 77 } 78 79 /** 80 * Constructs an AssertionError with its detail message derived 81 * from the specified <code>boolean</code>, which is converted to 82 * a string as defined in section 15.18.1.1 of 83 * <cite>The Java™ Language Specification</cite>. 84 * 85 * @param detailMessage value to be used in constructing detail message 86 */ 87 public AssertionError(boolean detailMessage) { 88 this("" + detailMessage); 89 } 90 91 /** 92 * Constructs an AssertionError with its detail message derived 93 * from the specified <code>char</code>, which is converted to a 94 * string as defined in section 15.18.1.1 of 95 * <cite>The Java™ Language Specification</cite>. 96 * 97 * @param detailMessage value to be used in constructing detail message 98 */ 99 public AssertionError(char detailMessage) { 100 this("" + detailMessage); 101 } 102 103 /** 104 * Constructs an AssertionError with its detail message derived 105 * from the specified <code>int</code>, which is converted to a 106 * string as defined in section 15.18.1.1 of 107 * <cite>The Java™ Language Specification</cite>. 108 * 109 * @param detailMessage value to be used in constructing detail message 110 */ 111 public AssertionError(int detailMessage) { 112 this("" + detailMessage); 113 } 114 115 /** 116 * Constructs an AssertionError with its detail message derived 117 * from the specified <code>long</code>, which is converted to a 118 * string as defined in section 15.18.1.1 of 119 * <cite>The Java™ Language Specification</cite>. 120 * 121 * @param detailMessage value to be used in constructing detail message 122 */ 123 public AssertionError(long detailMessage) { 124 this("" + detailMessage); 125 } 126 127 /** 128 * Constructs an AssertionError with its detail message derived 129 * from the specified <code>float</code>, which is converted to a 130 * string as defined in section 15.18.1.1 of 131 * <cite>The Java™ Language Specification</cite>. 132 * 133 * @param detailMessage value to be used in constructing detail message 134 */ 135 public AssertionError(float detailMessage) { 136 this("" + detailMessage); 137 } 138 139 /** 140 * Constructs an AssertionError with its detail message derived 141 * from the specified <code>double</code>, which is converted to a 142 * string as defined in section 15.18.1.1 of 143 * <cite>The Java™ Language Specification</cite>. 144 * 145 * @param detailMessage value to be used in constructing detail message 146 */ 147 public AssertionError(double detailMessage) { 148 this("" + detailMessage); 149 } 150 151 /** 152 * Constructs a new {@code AssertionError} with the specified 153 * detail message and cause. 154 * 155 * <p>Note that the detail message associated with 156 * {@code cause} is <i>not</i> automatically incorporated in 157 * this error's detail message. 158 * 159 * @param message the detail message, may be {@code null} 160 * @param cause the cause, may be {@code null} 161 * 162 * @since 1.7 163 */ 164 public AssertionError(String message, Throwable cause) { 165 super(message, cause); 166 } 167} 168