SiteMap  | About    

Exceptions in Java

An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program's instructions. It provide a way to transfer control from one part of a program to another. Exceptions are occurred in situations like your program run out of the memory , file does not exist in the given path , network connections are dropped etc. More specifically for better understanding , we can say it as Runtime Errors occurs during the execution of a program that disrupts the normal flow of instructions. The following image shows an outofmemory exception:

How to Java try catch exception

Exception Hierarchy in Java

Exception class is used for exceptional conditions that programs should handle. The possible exceptions in a Java program are organized in a hierarchy of exception classes. The Throwable class , which is an immediate subclass of Object, is at the root of the exception hierarchy. Throwable has two immediate subclasses: Exception and Error . There is an important subclass of Exception, known as RuntimeException.

Java exception hierarchy

Exception Handling in Java

Exception handling is all about ensuring that when your program encounters an error or exception, it will continue to run and provide informative feedback to the end-user or program administrator. The exception handling in java is one of the powerful mechanism to handle the runtime errors so that normal flow of the application can be maintained. We need to include some specific codes in the program to handle the exceptional situation. This process of embedding codes to handle exceptional situation is known as exceptional handling. There are 5 keywords used in java for exception handling. They are:

  1. try
  2. catch
  3. finally
  4. throw
  5. throws


To catch exceptions, a portion of code is placed under exception inspection. This is done by enclosing that portion of code in a try{}-block . When an exceptional circumstance arises within that block, an exception is thrown that transfers the control to the exception handler. If no exception is thrown, the code continues normally and all handlers are ignored.

Example without catch exception:


When you run the above code, the compiler throws java.lang.ArithmeticException and all the code after exception will not be executed. In this type of situations we have to use Exception Handling.



Here you can see the exception handled in the catch block and the program continue to next line. It is important to note that Java try block must be followed by either catch or finally block.

Java finally block

A finally statement must be associated with a try..catch statement. It identifies a block of statements that needs to be executed regardless of whether or not an exception occurs within the try block. It is not mandatory to include a finally block at all, but if you do, it will run regardless of whether an exception was thrown and handled by the try and catch parts of the block. In normal case execution the finally block is executed after try block. When any exception occurs first the catch block is executed and then finally block is executed.


Example with exception:


Here exception happened but the finally code block executed.

Example with out exception:


Here we can see the program execute without any exception, but after that finally block also executed.

How to Catch multiple exceptions

A method can throw more than one exceptions. However that method needs to declare all the checked exceptions it can throw

With release of Java 7 , oracle has done some good changes in exception handling mechanism also. Primarily these are improved catch block and redundant throws clause.

In this feature, now you can catch multiple exceptions in single catch block. Before java 7, you was restricted to catch only one.

Advantages of Exception Handling

Java provides a sophisticated exception handling mechanism that enables you to identify exceptional conditions in your code and fix the exceptions as and when they occur. Some of important advantages as follow:

  1. Exception handling allows us to control the normal flow of the program by using exception handling in program.
  2. The ability to propagate errors up the call stack Another important advantage of exception handling in object oriented programming is the ability to propagate errors up the call stack.
  3. It throws an exception whenever a calling method encounters an error providing that the calling method takes care of that error.
  4. It also gives us the scope of organizing and differentiating between different error types using a separate block of codes. This is done with the help of try-catch blocks. (C) 2017    Founded by raps mk
All Rights Reserved. All other trademarks are property of their respective owners.