org.apache.commons.io

## Class IOExceptionList

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.io.IOException
      - - org.apache.commons.io.IOExceptionList

- All Implemented Interfaces:
    Serializable, Iterable<Throwable>

      public class IOExceptionList
      extends IOException
      implements Iterable<Throwable>

  An IOException based on a list of Throwable causes.

  The first exception in the list is used as this exception's cause and is accessible with the usual `Throwable.getCause()` while the complete list is accessible with `getCauseList()`.

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IOExceptionList(List<? extends Throwable> causeList)` Constructs a new exception caused by a list of exceptions.
    `IOExceptionList(String message, List<? extends Throwable> causeList)` Constructs a new exception caused by a list of exceptions.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `checkEmpty(List<? extends Throwable> causeList, Object message)` Throws this exception if the list is not null or empty.
    `<T extends Throwable> T` | `getCause(int index)` Gets the cause exception at the given index.
    `<T extends Throwable> T` | `getCause(int index, Class<T> clazz)` Gets the cause exception at the given index.
    `<T extends Throwable> List<T>` | `getCauseList()` Gets the cause list.
    `<T extends Throwable> List<T>` | `getCauseList(Class<T> clazz)` Works around Throwable and Generics, may fail at runtime depending on the argument value.
    `Iterator<Throwable>` | `iterator()`

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### IOExceptionList

          public IOExceptionList(List<? extends Throwable> causeList)

      Constructs a new exception caused by a list of exceptions.
      Parameters:
        `causeList` - a list of cause exceptions.

    - #### IOExceptionList

          public IOExceptionList(String message,
                                 List<? extends Throwable> causeList)

      Constructs a new exception caused by a list of exceptions.
      Parameters:
        `message` - The detail message, see `Throwable.getMessage()`.
        `causeList` - a list of cause exceptions.

  - ### Method Detail

    - #### checkEmpty

          public static void checkEmpty(List<? extends Throwable> causeList,
                                        Object message)
                                 throws IOExceptionList

      Throws this exception if the list is not null or empty.
      Parameters:
        `causeList` - The list to test.
        `message` - The detail message, see `Throwable.getMessage()`.
      Throws:
        `IOExceptionList` - if the list is not null or empty.

    - #### getCause

          public <T extends Throwable> T getCause(int index)

      Gets the cause exception at the given index.
      Type Parameters:
        `T` - type of exception to return.
      Parameters:
        `index` - index in the cause list.
      Returns:
        The list of causes.

    - #### getCause

          public <T extends Throwable> T getCause(int index,
                                                  Class<T> clazz)

      Gets the cause exception at the given index.
      Type Parameters:
        `T` - type of exception to return.
      Parameters:
        `index` - index in the cause list.
        `clazz` - type of exception to return.
      Returns:
        The list of causes.

    - #### getCauseList

          public <T extends Throwable> List<T> getCauseList()

      Gets the cause list.
      Type Parameters:
        `T` - type of exception to return.
      Returns:
        The list of causes.

    - #### getCauseList

          public <T extends Throwable> List<T> getCauseList(Class<T> clazz)

      Works around Throwable and Generics, may fail at runtime depending on the argument value.
      Type Parameters:
        `T` - type of exception to return.
      Parameters:
        `clazz` - the target type
      Returns:
        The list of causes.

    - #### iterator

          public Iterator<Throwable> iterator()

      Specified by:
        `iterator` in interface `Iterable<Throwable>`