1 /* 2 * Copyright (c) 2000, 2008, 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 26 package 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 <a 38 * href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html"> 39 * <i>The Java Language Specification, Second Edition</i></a>, 40 * <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#40220"> 41 * Section 15.18.1.1</a>), regardless of the type of <i>expression</i>. 42 * 43 * @since 1.4 44 */ 45 public class AssertionError extends Error { 46 private static final long serialVersionUID = -5013299493970297370L; 47 48 /** 49 * Constructs an AssertionError with no detail message. 50 */ 51 public AssertionError() { 52 } 53 54 /** 55 * This internal constructor does no processing on its string argument, 56 * even if it is a null reference. The public constructors will 57 * never call this constructor with a null argument. 58 */ 59 private AssertionError(String detailMessage) { 60 super(detailMessage); 61 } 62 63 /** 64 * Constructs an AssertionError with its detail message derived 65 * from the specified object, which is converted to a string as 66 * defined in <i>The Java Language Specification, Second 67 * Edition</i>, Section 15.18.1.1. 68 *<p> 69 * If the specified object is an instance of {@code Throwable}, it 70 * becomes the <i>cause</i> of the newly constructed assertion error. 71 * 72 * @param detailMessage value to be used in constructing detail message 73 * @see Throwable#getCause() 74 */ 75 public AssertionError(Object detailMessage) { 76 this("" + detailMessage); 77 if (detailMessage instanceof Throwable) 78 initCause((Throwable) detailMessage); 79 } 80 81 /** 82 * Constructs an AssertionError with its detail message derived 83 * from the specified <code>boolean</code>, which is converted to 84 * a string as defined in <i>The Java Language Specification, 85 * Second Edition</i>, Section 15.18.1.1. 86 * 87 * @param detailMessage value to be used in constructing detail message 88 */ 89 public AssertionError(boolean detailMessage) { 90 this("" + detailMessage); 91 } 92 93 /** 94 * Constructs an AssertionError with its detail message derived 95 * from the specified <code>char</code>, which is converted to a 96 * string as defined in <i>The Java Language Specification, Second 97 * Edition</i>, Section 15.18.1.1. 98 * 99 * @param detailMessage value to be used in constructing detail message 100 */ 101 public AssertionError(char detailMessage) { 102 this("" + detailMessage); 103 } 104 105 /** 106 * Constructs an AssertionError with its detail message derived 107 * from the specified <code>int</code>, which is converted to a 108 * string as defined in <i>The Java Language Specification, Second 109 * Edition</i>, Section 15.18.1.1. 110 * 111 * @param detailMessage value to be used in constructing detail message 112 */ 113 public AssertionError(int detailMessage) { 114 this("" + detailMessage); 115 } 116 117 /** 118 * Constructs an AssertionError with its detail message derived 119 * from the specified <code>long</code>, which is converted to a 120 * string as defined in <i>The Java Language Specification, Second 121 * Edition</i>, Section 15.18.1.1. 122 * 123 * @param detailMessage value to be used in constructing detail message 124 */ 125 public AssertionError(long detailMessage) { 126 this("" + detailMessage); 127 } 128 129 /** 130 * Constructs an AssertionError with its detail message derived 131 * from the specified <code>float</code>, which is converted to a 132 * string as defined in <i>The Java Language Specification, Second 133 * Edition</i>, Section 15.18.1.1. 134 * 135 * @param detailMessage value to be used in constructing detail message 136 */ 137 public AssertionError(float detailMessage) { 138 this("" + detailMessage); 139 } 140 141 /** 142 * Constructs an AssertionError with its detail message derived 143 * from the specified <code>double</code>, which is converted to a 144 * string as defined in <i>The Java Language Specification, Second 145 * Edition</i>, Section 15.18.1.1. 146 * 147 * @param detailMessage value to be used in constructing detail message 148 */ 149 public AssertionError(double detailMessage) { 150 this("" + detailMessage); 151 } 152 153 /** 154 * Constructs a new {@code AssertionError} with the specified 155 * detail message and cause. 156 * 157 * <p>Note that the detail message associated with 158 * {@code cause} is <i>not</i> automatically incorporated in 159 * this error's detail message. 160 * 161 * @param message the detail message, may be {@code null} 162 * @param cause the cause, may be {@code null} 163 * 164 * @since 1.7 165 */ 166 public AssertionError(String message, Throwable cause) { 167 super(message, cause); 168 } 169 }