Package org.apache.commons.lang

# Class IllegalClassException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.IllegalArgumentException
org.apache.commons.lang.IllegalClassException

All Implemented Interfaces:
  `Serializable`

public class IllegalClassException extends IllegalArgumentException

Thrown when an object is an instance of an unexpected type (a class or interface). This exception supplements the standard `IllegalArgumentException` by providing a more semantically rich description of the problem.

`IllegalClassException` represents the case where a method takes in a genericly typed parameter like Object (typically because it has to due to some other interface it implements), but this implementation only actually accepts a specific type, for example String. This exception would be used in place of `IllegalArgumentException`, yet it still extends it.

     public void foo(Object obj) {
       if (obj instanceof String == false) {
         throw new IllegalClassException(String.class, obj);
       }
       // do something with the string
     }

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

## Constructor Summary

Constructors
Constructor
Description
`IllegalClassException(Class expected, Class actual)`
Instantiates with the expected and actual types.
`IllegalClassException(Class expected, Object actual)`
Instantiates with the expected type, and actual object.
`IllegalClassException(String message)`
Instantiates with the specified message.

## Method Summary

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

### IllegalClassException

public IllegalClassException(Class expected, Object actual)

Instantiates with the expected type, and actual object.

Parameters:
  `expected` - the expected type
  `actual` - the actual object
Since:
  2.1

### IllegalClassException

public IllegalClassException(Class expected, Class actual)

Instantiates with the expected and actual types.

Parameters:
  `expected` - the expected type
  `actual` - the actual type

### IllegalClassException

public IllegalClassException(String message)

Instantiates with the specified message.

Parameters:
  `message` - the exception message