Home | History | Annotate | Download | only in lang
      1 /*
      2  * Copyright (c) 1994, 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  * The class {@code Exception} and its subclasses are a form of
     30  * {@code Throwable} that indicates conditions that a reasonable
     31  * application might want to catch.
     32  *
     33  * <p>The class {@code Exception} and any subclasses that are not also
     34  * subclasses of {@link RuntimeException} are <em>checked
     35  * exceptions</em>.  Checked exceptions need to be declared in a
     36  * method or constructor's {@code throws} clause if they can be thrown
     37  * by the execution of the method or constructor and propagate outside
     38  * the method or constructor boundary.
     39  *
     40  * @author  Frank Yellin
     41  * @see     java.lang.Error
     42  * @jls 11.2 Compile-Time Checking of Exceptions
     43  * @since   JDK1.0
     44  */
     45 public class Exception extends Throwable {
     46     static final long serialVersionUID = -3387516993124229948L;
     47 
     48     /**
     49      * Constructs a new exception with {@code null} as its detail message.
     50      * The cause is not initialized, and may subsequently be initialized by a
     51      * call to {@link #initCause}.
     52      */
     53     public Exception() {
     54         super();
     55     }
     56 
     57     /**
     58      * Constructs a new exception with the specified detail message.  The
     59      * cause is not initialized, and may subsequently be initialized by
     60      * a call to {@link #initCause}.
     61      *
     62      * @param   message   the detail message. The detail message is saved for
     63      *          later retrieval by the {@link #getMessage()} method.
     64      */
     65     public Exception(String message) {
     66         super(message);
     67     }
     68 
     69     /**
     70      * Constructs a new exception with the specified detail message and
     71      * cause.  <p>Note that the detail message associated with
     72      * {@code cause} is <i>not</i> automatically incorporated in
     73      * this exception's detail message.
     74      *
     75      * @param  message the detail message (which is saved for later retrieval
     76      *         by the {@link #getMessage()} method).
     77      * @param  cause the cause (which is saved for later retrieval by the
     78      *         {@link #getCause()} method).  (A <tt>null</tt> value is
     79      *         permitted, and indicates that the cause is nonexistent or
     80      *         unknown.)
     81      * @since  1.4
     82      */
     83     public Exception(String message, Throwable cause) {
     84         super(message, cause);
     85     }
     86 
     87     /**
     88      * Constructs a new exception with the specified cause and a detail
     89      * message of <tt>(cause==null ? null : cause.toString())</tt> (which
     90      * typically contains the class and detail message of <tt>cause</tt>).
     91      * This constructor is useful for exceptions that are little more than
     92      * wrappers for other throwables (for example, {@link
     93      * java.security.PrivilegedActionException}).
     94      *
     95      * @param  cause the cause (which is saved for later retrieval by the
     96      *         {@link #getCause()} method).  (A <tt>null</tt> value is
     97      *         permitted, and indicates that the cause is nonexistent or
     98      *         unknown.)
     99      * @since  1.4
    100      */
    101     public Exception(Throwable cause) {
    102         super(cause);
    103     }
    104 
    105     /**
    106      * Constructs a new exception with the specified detail message,
    107      * cause, suppression enabled or disabled, and writable stack
    108      * trace enabled or disabled.
    109      *
    110      * @param  message the detail message.
    111      * @param cause the cause.  (A {@code null} value is permitted,
    112      * and indicates that the cause is nonexistent or unknown.)
    113      * @param enableSuppression whether or not suppression is enabled
    114      *                          or disabled
    115      * @param writableStackTrace whether or not the stack trace should
    116      *                           be writable
    117      * @since 1.7
    118      */
    119     protected Exception(String message, Throwable cause,
    120                         boolean enableSuppression,
    121                         boolean writableStackTrace) {
    122         super(message, cause, enableSuppression, writableStackTrace);
    123     }
    124 }
    125