Java Exception classes Hierarchy

Technically Exception is a java class. To represent different kinds of exceptions in java we do have different java classes. The objects of these exception classes behave little different than other objects. Like only exception objects we could use to terminate the flow of execution. But we cannot user other objects to terminate the flow of execution.

So to differentiate these exception classes by compiler and JVM, Java has made all exception class hierarchy to extend from the Throwable class. Only instances of Throwable (or its subclass) can be thrown by JVM or throw keyword. Only Throwable (or its subclass) can be caught via catch block. Only instances of Throwable (or its subclass) can be declared with throws keyword.

Throwable class has some common methods to deal with exceptions like getMessage() indicating the error message, getCause() to get the root cause of the exception, printStackTrace() to print the stack trace of an exception… etc. Below image represents Exception hierarchy in java.

Java Exception Hierarchy
Java Exception Hierarchy

Scroll to Top