Package org.apache.commons.lang

## Class NotImplementedException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.lang.RuntimeException
      - - java.lang.UnsupportedOperationException
        - - org.apache.commons.lang.NotImplementedException

- All Implemented Interfaces:
    `Serializable`, `Nestable`

      public class NotImplementedException
      extends UnsupportedOperationException
      implements Nestable

  Thrown to indicate that a block of code has not been implemented. This exception supplements `UnsupportedOperationException` by providing a more semantically rich description of the problem.

  `NotImplementedException` represents the case where the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. Because this logic might be within a catch block, this exception suports exception chaining.

       public void foo() {
         try {
           // do something that throws an Exception
         } catch (Exception ex) {
           // don't know what to do here yet
           throw new NotImplementedException("TODO", ex);
         }
       }

  Since:
    2.0
  Version:
    $Id: NotImplementedException.java 905636 2010-02-02 14:03:32Z niallp $
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NotImplementedException()` | Constructs a new `NotImplementedException` with default message.
    `NotImplementedException​(Class clazz)` | Constructs a new `NotImplementedException` referencing the specified class.
    `NotImplementedException​(String msg)` | Constructs a new `NotImplementedException` with specified detail message.
    `NotImplementedException​(String msg, Throwable cause)` | Constructs a new `NotImplementedException` with specified detail message and nested `Throwable`.
    `NotImplementedException​(Throwable cause)` | Constructs a new `NotImplementedException` with specified nested `Throwable` and default message.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Throwable` | `getCause()` | Gets the root cause of this exception.
    `String` | `getMessage()` | Gets the combined the error message of this and any nested errors.
    `String` | `getMessage​(int index)` | Returns the error message of the `Throwable` in the chain of `Throwable`s at the specified index, numbered from 0.
    `String[]` | `getMessages()` | Returns the error message of this and any nested `Throwable` objects.
    `Throwable` | `getThrowable​(int index)` | Returns the `Throwable` in the chain by index.
    `int` | `getThrowableCount()` | Returns the number of nested `Throwable`s represented by this `Nestable`, including this `Nestable`.
    `Throwable[]` | `getThrowables()` | Returns this `Nestable` and any nested `Throwable`s in an array of `Throwable`s, one element for each `Throwable`.
    `int` | `indexOfThrowable​(Class type)` | Returns the index of the first occurrence of the specified type.
    `int` | `indexOfThrowable​(Class type, int fromIndex)` | Returns the index of the first occurrence of the specified type starting from the specified index.
    `void` | `printPartialStackTrace​(PrintWriter out)` | Prints the stack trace for this exception only (root cause not included) using the specified writer.
    `void` | `printStackTrace()` | Prints the stack trace of this exception.
    `void` | `printStackTrace​(PrintStream out)` | Prints the stack trace of this exception to the specified stream.
    `void` | `printStackTrace​(PrintWriter out)` | Prints the stack trace of this exception to the specified writer.

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, fillInStackTrace, getLocalizedMessage, getStackTrace, getSuppressed, initCause, setStackTrace, toString`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### NotImplementedException

          public NotImplementedException()

      Constructs a new `NotImplementedException` with default message.
      Since:
        2.1

    - #### NotImplementedException

          public NotImplementedException​(String msg)

      Constructs a new `NotImplementedException` with specified detail message.
      Parameters:
        `msg` - the error message.

    - #### NotImplementedException

          public NotImplementedException​(Throwable cause)

      Constructs a new `NotImplementedException` with specified nested `Throwable` and default message.
      Parameters:
        `cause` - the exception that caused this exception to be thrown
      Since:
        2.1

    - #### NotImplementedException

          public NotImplementedException​(String msg,
                                         Throwable cause)

      Constructs a new `NotImplementedException` with specified detail message and nested `Throwable`.
      Parameters:
        `msg` - the error message
        `cause` - the exception that caused this exception to be thrown
      Since:
        2.1

    - #### NotImplementedException

          public NotImplementedException​(Class clazz)

      Constructs a new `NotImplementedException` referencing the specified class.
      Parameters:
        `clazz` - the `Class` that has not implemented the method

  - ### Method Detail

    - #### getCause

          public Throwable getCause()

      Gets the root cause of this exception.
      Specified by:
        `getCause` in interface `Nestable`
      Overrides:
        `getCause` in class `Throwable`
      Returns:
        the root cause of this exception.
      Since:
        2.1

    - #### getMessage

          public String getMessage()

      Gets the combined the error message of this and any nested errors.
      Specified by:
        `getMessage` in interface `Nestable`
      Overrides:
        `getMessage` in class `Throwable`
      Returns:
        the error message
      Since:
        2.1

    - #### getMessage

          public String getMessage​(int index)

      Returns the error message of the `Throwable` in the chain of `Throwable`s at the specified index, numbered from 0.
      Specified by:
        `getMessage` in interface `Nestable`
      Parameters:
        `index` - the index of the `Throwable` in the chain
      Returns:
        the error message, or null if the `Throwable` at the specified index in the chain does not contain a message
      Throws:
        `IndexOutOfBoundsException` - if the `index` argument is negative or not less than the count of `Throwable`s in the chain
      Since:
        2.1

    - #### getMessages

          public String[] getMessages()

      Returns the error message of this and any nested `Throwable` objects. Each throwable returns a message, a null string is included in the array if there is no message for a particular `Throwable`.
      Specified by:
        `getMessages` in interface `Nestable`
      Returns:
        the error messages
      Since:
        2.1

    - #### getThrowable

          public Throwable getThrowable​(int index)

      Returns the `Throwable` in the chain by index.
      Specified by:
        `getThrowable` in interface `Nestable`
      Parameters:
        `index` - the index to retrieve
      Returns:
        the `Throwable`
      Throws:
        `IndexOutOfBoundsException` - if the `index` argument is negative or not less than the count of `Throwable`s in the chain
      Since:
        2.1

    - #### getThrowableCount

          public int getThrowableCount()

      Returns the number of nested `Throwable`s represented by this `Nestable`, including this `Nestable`.
      Specified by:
        `getThrowableCount` in interface `Nestable`
      Returns:
        the throwable count
      Since:
        2.1

    - #### getThrowables

          public Throwable[] getThrowables()

      Returns this `Nestable` and any nested `Throwable`s in an array of `Throwable`s, one element for each `Throwable`.
      Specified by:
        `getThrowables` in interface `Nestable`
      Returns:
        the `Throwable`s
      Since:
        2.1

    - #### indexOfThrowable

          public int indexOfThrowable​(Class type)

      Returns the index of the first occurrence of the specified type. If there is no match, `-1` is returned.
      Specified by:
        `indexOfThrowable` in interface `Nestable`
      Parameters:
        `type` - the type to search for
      Returns:
        index of the first occurrence of the type in the chain, or -1 if the type is not found
      Since:
        2.1

    - #### indexOfThrowable

          public int indexOfThrowable​(Class type,
                                      int fromIndex)

      Returns the index of the first occurrence of the specified type starting from the specified index. If there is no match, `-1` is returned.
      Specified by:
        `indexOfThrowable` in interface `Nestable`
      Parameters:
        `type` - the type to search for
        `fromIndex` - the index of the starting position in the chain to be searched
      Returns:
        index of the first occurrence of the type in the chain, or -1 if the type is not found
      Throws:
        `IndexOutOfBoundsException` - if the `fromIndex` argument is negative or not less than the count of `Throwable`s in the chain
      Since:
        2.1

    - #### printStackTrace

          public void printStackTrace()

      Prints the stack trace of this exception. Includes information from the exception, if any, which caused this exception.
      Overrides:
        `printStackTrace` in class `Throwable`
      Since:
        2.1

    - #### printStackTrace

          public void printStackTrace​(PrintStream out)

      Prints the stack trace of this exception to the specified stream. Includes information from the exception, if any, which caused this exception.
      Specified by:
        `printStackTrace` in interface `Nestable`
      Overrides:
        `printStackTrace` in class `Throwable`
      Parameters:
        `out` - the stream to write to
      Since:
        2.1

    - #### printStackTrace

          public void printStackTrace​(PrintWriter out)

      Prints the stack trace of this exception to the specified writer. Includes information from the exception, if any, which caused this exception.
      Specified by:
        `printStackTrace` in interface `Nestable`
      Overrides:
        `printStackTrace` in class `Throwable`
      Parameters:
        `out` - the writer to write to
      Since:
        2.1

    - #### printPartialStackTrace

          public final void printPartialStackTrace​(PrintWriter out)

      Prints the stack trace for this exception only (root cause not included) using the specified writer.
      Specified by:
        `printPartialStackTrace` in interface `Nestable`
      Parameters:
        `out` - the writer to write to
      Since:
        2.1