# Class ServletException

java.lang.Object
java.lang.Throwable
java.lang.Exception
jakarta.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 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

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