jdk/src/java.base/share/classes/java/lang/AssertionError.java
changeset 25859 3317bb8137f4
parent 14342 8435a30053c1
equal deleted inserted replaced
25858:836adbf7a2cd 25859:3317bb8137f4
       
     1 /*
       
     2  * Copyright (c) 2000, 2011, 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 section 15.18.1.1 of
       
    38  * <cite>The Java&trade; Language Specification</cite>),
       
    39  * regardless of the type of <i>expression</i>.
       
    40  *
       
    41  * @since   1.4
       
    42  */
       
    43 public 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&trade; 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(String.valueOf(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&trade; Language Specification</cite>.
       
    84      *
       
    85      * @param detailMessage value to be used in constructing detail message
       
    86      */
       
    87     public AssertionError(boolean detailMessage) {
       
    88         this(String.valueOf(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&trade; Language Specification</cite>.
       
    96      *
       
    97      * @param detailMessage value to be used in constructing detail message
       
    98      */
       
    99     public AssertionError(char detailMessage) {
       
   100         this(String.valueOf(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&trade; Language Specification</cite>.
       
   108      *
       
   109      * @param detailMessage value to be used in constructing detail message
       
   110      */
       
   111     public AssertionError(int detailMessage) {
       
   112         this(String.valueOf(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&trade; Language Specification</cite>.
       
   120      *
       
   121      * @param detailMessage value to be used in constructing detail message
       
   122      */
       
   123     public AssertionError(long detailMessage) {
       
   124         this(String.valueOf(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&trade; Language Specification</cite>.
       
   132      *
       
   133      * @param detailMessage value to be used in constructing detail message
       
   134      */
       
   135     public AssertionError(float detailMessage) {
       
   136         this(String.valueOf(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&trade; Language Specification</cite>.
       
   144      *
       
   145      * @param detailMessage value to be used in constructing detail message
       
   146      */
       
   147     public AssertionError(double detailMessage) {
       
   148         this(String.valueOf(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 }