Class NestedRuntimeException

All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AnnotationConfigurationException, AopConfigException, AopInvocationException, BeansException, BshScriptUtils.BshExecutionException, CodecException, ConversionException, DataAccessException, ErrorResponseException, HandshakeFailureException, HttpMessageConversionException, JmsException, JmxException, JndiLookupFailureException, JobMethodInvocationFailedException, MailException, MessagingException, MultipartException, RestClientException, SchedulingException, ScriptCompilationException, SerializationFailedException, SockJsException, StompConversionException, TransactionException, UnsupportedMediaTypeException, WebClientException, 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:
  • Constructor Details

    • NestedRuntimeException

      public NestedRuntimeException(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

    • 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
      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