Module java.base
Package java.lang

## Class ClassNotFoundException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.lang.ReflectiveOperationException
      - - java.lang.ClassNotFoundException

- All Implemented Interfaces:
    `Serializable`

      public class ClassNotFoundException
      extends ReflectiveOperationException

  Thrown when an application tries to load in a class through its string name using:
  - The `forName` method in class `Class`.
  - The `findSystemClass` method in class `ClassLoader` .
  - The `loadClass` method in class `ClassLoader`.

  but no definition for the class with the specified name could be found.

  As of release 1.4, this exception has been retrofitted to conform to the general purpose exception-chaining mechanism. The "optional exception that was raised while loading the class" that may be provided at construction time and accessed via the `getException()` method is now known as the cause, and may be accessed via the `Throwable.getCause()` method, as well as the aforementioned "legacy method."

  Since:
    1.0
  See Also:
    `Class.forName(java.lang.String)`, `ClassLoader.findSystemClass(java.lang.String)`, `ClassLoader.loadClass(java.lang.String, boolean)`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ClassNotFoundException()` | Constructs a `ClassNotFoundException` with no detail message.
    `ClassNotFoundException​(String s)` | Constructs a `ClassNotFoundException` with the specified detail message.
    `ClassNotFoundException​(String s, Throwable ex)` | Constructs a `ClassNotFoundException` with the specified detail message and optional exception that was raised while loading the class.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `Throwable` | `getException()` | Returns the exception that was raised if an error occurred while attempting to load the class.

    - ### Methods declared in class java.lang.Throwable

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

    - ### Methods declared in class java.lang.Object

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

- - ### Constructor Detail

    - #### ClassNotFoundException

          public ClassNotFoundException()

      Constructs a `ClassNotFoundException` with no detail message.

    - #### ClassNotFoundException

          public ClassNotFoundException​(String s)

      Constructs a `ClassNotFoundException` with the specified detail message.
      Parameters:
        `s` - the detail message.

    - #### ClassNotFoundException

          public ClassNotFoundException​(String s,
                                        Throwable ex)

      Constructs a `ClassNotFoundException` with the specified detail message and optional exception that was raised while loading the class.
      Parameters:
        `s` - the detail message
        `ex` - the exception that was raised while loading the class
      Since:
        1.2

  - ### Method Detail

    - #### getException

          public Throwable getException()

      Returns the exception that was raised if an error occurred while attempting to load the class. Otherwise, returns `null`.

      This method predates the general-purpose exception chaining facility. The `Throwable.getCause()` method is now the preferred means of obtaining this information.

      Returns:
        the `Exception` that was raised while loading a class
      Since:
        1.2