# Class InvalidClassException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
java.io.ObjectStreamException
java.io.InvalidClassException

All Implemented Interfaces:
  `Serializable`

public class InvalidClassException extends ObjectStreamException
Thrown when the Serialization runtime detects one of the following problems with a Class.

- The serial version of the class does not match that of the class descriptor read from the stream
- The class contains unknown datatypes
- The class does not have an accessible no-arg constructor
- The ObjectStreamClass of an enum constant does not represent an enum type
- Other conditions given in the Java Object Serialization Specification

Since:
  1.1
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `String`
  `classname`
  Name of the invalid class.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `InvalidClassException(String reason)`
  Report an InvalidClassException for the reason specified.
  `InvalidClassException(String cname, String reason)`
  Constructs an InvalidClassException object.
  `InvalidClassException(String cname, String reason, Throwable cause)`
  Report an InvalidClassException for the reason and cause specified.
  `InvalidClassException(String reason, Throwable cause)`
  Report an InvalidClassException for the reason and cause specified.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getMessage()`
  Produce the message and include the classname, if present.

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

  `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, 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`

- ## Field Details

  - ### classname

    public String classname
    Name of the invalid class.

- ## Constructor Details

  - ### InvalidClassException

    public InvalidClassException(String reason)
    Report an InvalidClassException for the reason specified.
    Parameters:
      `reason` - String describing the reason for the exception.

  - ### InvalidClassException

    public InvalidClassException(String cname, String reason)
    Constructs an InvalidClassException object.
    Parameters:
      `cname` - a String naming the invalid class.
      `reason` - a String describing the reason for the exception.

  - ### InvalidClassException

    public InvalidClassException(String reason, Throwable cause)
    Report an InvalidClassException for the reason and cause specified.
    Parameters:
      `reason` - String describing the reason for the exception.
      `cause` - the cause
    Since:
      19

  - ### InvalidClassException

    public InvalidClassException(String cname, String reason, Throwable cause)
    Report an InvalidClassException for the reason and cause specified.
    Parameters:
      `cname` - a String naming the invalid class.
      `reason` - String describing the reason for the exception.
      `cause` - the cause
    Since:
      19

- ## Method Details

  - ### getMessage

    public String getMessage()
    Produce the message and include the classname, if present.
    Overrides:
      `getMessage` in class `Throwable`
    Returns:
      the detail message string of this `Throwable` instance (which may be `null`).