# Class ServletException

java.lang.Object
java.lang.Throwable
java.lang.Exception
javax.servlet.ServletException

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `UnavailableException`

public class ServletException extends Exception
Defines a general exception a servlet can throw when it encounters difficulty.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ServletException()`
  Constructs a new servlet exception.
  `ServletException(String message)`
  Constructs a new servlet exception with the specified message.
  `ServletException(String message, Throwable rootCause)`
  Constructs a new servlet exception when the servlet needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation, including a description message.
  `ServletException(Throwable rootCause)`
  Constructs a new servlet exception when the servlet needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Throwable`
  `getRootCause()`
  Returns the exception that caused this servlet exception.

  ### Methods inherited from class Throwable

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

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### ServletException

    public ServletException()
    Constructs a new servlet exception.

  - ### ServletException

    public ServletException(String message)
    Constructs a new servlet exception with the specified message. The message can be written to the server log and/or displayed for the user.
    Parameters:
      `message` - a `String` specifying the text of the exception message

  - ### ServletException

    public ServletException(String message, Throwable rootCause)
    Constructs a new servlet exception when the servlet needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation, including a description message.
    Parameters:
      `message` - a `String` containing the text of the exception message
      `rootCause` - the `Throwable` exception that interfered with the servlet's normal operation, making this servlet exception necessary

  - ### ServletException

    public ServletException(Throwable rootCause)
    Constructs a new servlet exception when the servlet needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation. The exception's message is based on the localized message of the underlying exception.

    This method calls the `getLocalizedMessage` method on the `Throwable` exception to get a localized exception message. When subclassing `ServletException`, this method can be overridden to create an exception message designed for a specific locale.

    Parameters:
      `rootCause` - the `Throwable` exception that interfered with the servlet's normal operation, making the servlet exception necessary

- ## Method Details

  - ### getRootCause

    public Throwable getRootCause()
    Returns the exception that caused this servlet exception.
    Returns:
      the `Throwable` that caused this servlet exception