org.springframework.core

## Class NestedCheckedException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - org.springframework.core.NestedCheckedException

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    MetaDataAccessException

      public abstract class NestedCheckedException
      extends Exception

  Handy class for wrapping checked `Exceptions` with a root cause.

  This class is `abstract` to force the programmer to extend the class. `getMessage` will include nested exception information; `printStackTrace` and other like methods will delegate to the wrapped exception, if any.

  The similarity between this class and the `NestedRuntimeException` class is unavoidable, as Java forces these two classes to have different superclasses (ah, the inflexibility of concrete inheritance!).

  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    `getMessage()`, `Throwable.printStackTrace()`, `NestedRuntimeException`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `NestedCheckedException(String msg)` Construct a `NestedCheckedException` with the specified detail message.
    `NestedCheckedException(String msg, Throwable cause)` Construct a `NestedCheckedException` with the specified detail message and nested exception.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `contains(Class<?> exType)` Check whether this exception contains an exception of the given type: either it is of the given class itself or it contains a nested cause of the given type.
    `String` | `getMessage()` Return the detail message, including the message from the nested exception if there is one.
    `Throwable` | `getMostSpecificCause()` Retrieve the most specific cause of this exception, that is, either the innermost cause (root cause) or this exception itself.
    `Throwable` | `getRootCause()` Retrieve the innermost cause of this exception, if any.

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

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

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

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

- - ### Constructor Detail

    - #### NestedCheckedException

          public NestedCheckedException(String msg)

      Construct a `NestedCheckedException` with the specified detail message.
      Parameters:
        `msg` - the detail message

    - #### NestedCheckedException

          public NestedCheckedException(@Nullable
                                        String msg,
                                        @Nullable
                                        Throwable cause)

      Construct a `NestedCheckedException` with the specified detail message and nested exception.
      Parameters:
        `msg` - the detail message
        `cause` - the nested exception

  - ### Method Detail

    - #### getMessage

          @Nullable
          public String getMessage()

      Return the detail message, including the message from the nested exception if there is one.
      Overrides:
        `getMessage` in class `Throwable`

    - #### getRootCause

          @Nullable
          public Throwable getRootCause()

      Retrieve the innermost cause of this exception, if any.
      Returns:
        the innermost exception, or `null` if none

    - #### getMostSpecificCause

          public Throwable getMostSpecificCause()

      Retrieve the most specific cause of this exception, that is, either the innermost cause (root cause) or this exception itself.

      Differs from `getRootCause()` in that it falls back to the present exception if there is no root cause.

      Returns:
        the most specific cause (never `null`)
      Since:
        2.0.3

    - #### contains

          public boolean contains(@Nullable
                                  Class<?> exType)

      Check whether this exception contains an exception of the given type: either it is of the given class itself or it contains a nested cause of the given type.
      Parameters:
        `exType` - the exception type to look for
      Returns:
        whether there is a nested exception of the specified type