org.springframework.core

## Class NestedRuntimeException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.lang.RuntimeException
      - - org.springframework.core.NestedRuntimeException

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  AopConfigException, AopInvocationException, BeansException, BshScriptUtils.BshExecutionException, ConversionException, DataAccessException, EjbAccessException, HandlerMethodInvocationException, HttpMessageConversionException, JmsException, JmxException, JndiLookupFailureException, JobMethodInvocationFailedException, JRubyScriptUtils.JRubyExecutionException, MailException, MultipartException, RemoteAccessException, RestClientException, SchedulingException, ScriptCompilationException, SerializationFailedException, TransactionException, XmlMappingException

    public abstract class NestedRuntimeException
    extends RuntimeException

Handy class for wrapping runtime `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 `NestedCheckedException` 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()`, `NestedCheckedException`, Serialized Form

### Constructor Summary

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

### Method Summary

Methods
`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

#### NestedRuntimeException

    public NestedRuntimeException(String msg)

Construct a `NestedRuntimeException` with the specified detail message.

Parameters:
  `msg` - the detail message

#### NestedRuntimeException

    public NestedRuntimeException(String msg,
                          Throwable cause)

Construct a `NestedRuntimeException` with the specified detail message and nested exception.

Parameters:
  `msg` - the detail message
  `cause` - the nested exception

### Method Detail

#### getMessage

    public String getMessage()

Return the detail message, including the message from the nested exception if there is one.

Overrides:
  `getMessage` in class `Throwable`

#### getRootCause

    public Throwable getRootCause()

Retrieve the innermost cause of this exception, if any.

Returns:
  the innermost exception, or `null` if none
Since:
  2.0

#### 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(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