Package 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:
  `AnnotationConfigurationException`, `CodecException`, `ConversionException`, `SerializationFailedException`

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.

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:
  - `Throwable.getMessage()`
  - `NestedCheckedException`
  - Serialized Form

## Constructor Summary

Constructors
Constructor
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

Modifier and Type
Method
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.
`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, getMessage, 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 Details

### NestedRuntimeException

public NestedRuntimeException(@Nullable String msg)
Construct a `NestedRuntimeException` with the specified detail message.

Parameters:
  `msg` - the detail message

### NestedRuntimeException

public NestedRuntimeException(@Nullable String msg, @Nullable Throwable cause)
Construct a `NestedRuntimeException` with the specified detail message and nested exception.

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

## Method Details

### getRootCause

@Nullable 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(@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