Advanced Java programming.
Java exceptions are basically java objects. An object is thrown when you throw a java exception. It is not possible to throw any object as an exception. Only those objects whose classes descend from Throwable.
Throwable serves as the base class for all classes and it is declared in java.lang. Your program can instantiate and throw it.
Following picture shows a part of this family. Java Exception Classes