# Class MultiThrowable

java.lang.Object
java.lang.Throwable
org.apache.tomcat.util.MultiThrowable

All Implemented Interfaces:
  `Serializable`

public class MultiThrowable extends Throwable
Wraps a list of throwables as a single throwable. This is intended to be used when multiple actions are taken where each may throw an exception but all actions are taken before any errors are reported.

This class is NOT threadsafe.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MultiThrowable()`
  Default constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(Throwable t)`
  Add a throwable to the list of wrapped throwables.
  `Throwable`
  `getThrowable()`
  Return the wrapped throwable.
  `List<Throwable>`
  `getThrowables()`
  Return a read-only list of the wrapped throwables.
  `int`
  `size()`
  Return the number of throwables currently wrapped by this instance.
  `String`
  `toString()`
  Overrides the default implementation to provide a concatenation of the messages associated with each of the wrapped throwables.

  ### Methods inherited from class Throwable

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

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### MultiThrowable

    public MultiThrowable()
    Default constructor.

- ## Method Details

  - ### add

    public void add(Throwable t)
    Add a throwable to the list of wrapped throwables.
    Parameters:
      `t` - The throwable to add

  - ### getThrowables

    public List<Throwable> getThrowables()
    Return a read-only list of the wrapped throwables.
    Returns:
      A read-only list of the wrapped throwables

  - ### getThrowable

    public Throwable getThrowable()
    Return the wrapped throwable.
    Returns:
      `null` if there are no wrapped throwables, the Throwable if there is a single wrapped throwable or the current instance if there are multiple wrapped throwables

  - ### size

    public int size()
    Return the number of throwables currently wrapped by this instance.
    Returns:
      The number of throwables currently wrapped by this instance

  - ### toString

    public String toString()
    Overrides the default implementation to provide a concatenation of the messages associated with each of the wrapped throwables. Note that the format of the returned String is not guaranteed to be fixed and may change in a future release.
    Overrides:
      `toString` in class `Throwable`