Package org.springframework.core

# Class NestedExceptionUtils

java.lang.Object
org.springframework.core.NestedExceptionUtils

public abstract class NestedExceptionUtils extends Object
Helper class for implementing exception classes which are capable of holding nested exceptions. Necessary because we can't share a base class among different exception types.

Mainly for use within the framework.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  - `NestedRuntimeException`
  - `NestedCheckedException`

## Constructor Summary

Constructors
Constructor
Description
`NestedExceptionUtils()`

## Method Summary

Modifier and Type
Method
Description
`static String`
`buildMessage(String message, Throwable cause)`
Deprecated.
as of 6.0, in favor of custom exception messages with selective inclusion of cause messages
`static Throwable`
`getMostSpecificCause(Throwable original)`
Retrieve the most specific cause of the given exception, that is, either the innermost cause (root cause) or the exception itself.
`static Throwable`
`getRootCause(Throwable original)`
Retrieve the innermost cause of the given exception, if any.

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

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

## Constructor Details

### NestedExceptionUtils

public NestedExceptionUtils()

## Method Details

### buildMessage

@Deprecated(since="6.0") @Nullable public static String buildMessage(@Nullable String message, @Nullable Throwable cause)
Deprecated.
as of 6.0, in favor of custom exception messages with selective inclusion of cause messages
Build a message for the given base message and root cause.

Parameters:
  `message` - the base message
  `cause` - the root cause
Returns:
  the full exception message

### getRootCause

@Nullable public static Throwable getRootCause(@Nullable Throwable original)
Retrieve the innermost cause of the given exception, if any.

Parameters:
  `original` - the original exception to introspect
Returns:
  the innermost exception, or `null` if none
Since:
  4.3.9

### getMostSpecificCause

public static Throwable getMostSpecificCause(Throwable original)
Retrieve the most specific cause of the given exception, that is, either the innermost cause (root cause) or the exception itself.

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

Parameters:
  `original` - the original exception to introspect
Returns:
  the most specific cause (never `null`)
Since:
  4.3.9