Package java.lang

## Class Exception

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception

- All Implemented Interfaces:
    `Serializable`
  Direct Known Subclasses:
    `CloneNotSupportedException`, `InterruptedException`, `IOException`, `ReflectiveOperationException`, `RuntimeException`

      public class Exception
      extends Throwable

  The class `Exception` and its subclasses are a form of `Throwable` that indicates conditions that a reasonable application might want to catch.

  The class `Exception` and any subclasses that are not also subclasses of `RuntimeException` are checked exceptions. Checked exceptions need to be declared in a method or constructor's `throws` clause if they can be thrown by the execution of the method or constructor and propagate outside the method or constructor boundary.

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Exception()` | Constructs a new exception with `null` as its detail message.
    `Exception​(String message)` | Constructs a new exception with the specified detail message.
    `Exception​(String message, Throwable cause)` | Constructs a new exception with the specified detail message and cause.
    `Exception​(Throwable cause)` | Constructs a new exception with the specified cause and a detail message of `(cause==null ? null : cause.toString())` (which typically contains the class and detail message of `cause`).

  - ### Method Summary

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Exception

          public Exception()

      Constructs a new exception with `null` as its detail message. The cause is not initialized, and may subsequently be initialized by a call to `Throwable.initCause(java.lang.Throwable)`.

    - #### Exception

          public Exception​(String message)

      Constructs a new exception with the specified detail message. The cause is not initialized, and may subsequently be initialized by a call to `Throwable.initCause(java.lang.Throwable)`.
      Parameters:
        `message` - the detail message. The detail message is saved for later retrieval by the `Throwable.getMessage()` method.

    - #### Exception

          public Exception​(String message,
                           @Nullable
                           Throwable cause)

      Constructs a new exception with the specified detail message and cause.

      Note that the detail message associated with `cause` is not automatically incorporated in this exception's detail message.

      Parameters:
        `message` - the detail message (which is saved for later retrieval by the `Throwable.getMessage()` method).
        `cause` - the cause (which is saved for later retrieval by the `Throwable.getCause()` method). (A `null` value is permitted, and indicates that the cause is nonexistent or unknown.)

    - #### Exception

          public Exception​(@Nullable
                           Throwable cause)

      Constructs a new exception with the specified cause and a detail message of `(cause==null ? null : cause.toString())` (which typically contains the class and detail message of `cause`). This constructor is useful for exceptions that are little more than wrappers for other throwables.
      Parameters:
        `cause` - the cause (which is saved for later retrieval by the `Throwable.getCause()` method). (A `null` value is permitted, and indicates that the cause is nonexistent or unknown.)