Exception Handling in Java
The exception handling in java is one of the powerful mechanisms to handle
the runtime errors so that normal flow of the application can be maintained.
Here we will learn about java exception, its type and the difference between
checked and unchecked exceptions.
What is exception
Dictionary Meaning: Exception is an abnormal condition.
In java, exception is an event that disrupts the normal flow of the program. It is
an object which is thrown at runtime.
What is exception handling?
Exception Handling is a mechanism to handle runtime errors such as
ClassNotFound, IO, SQL, Remote etc.
Advantage of Exception Handling
The core advantage of exception handling is to maintain the normal flow of
the application. Exception normally disrupts the normal flow of the application
that is why we use exception handling. Let's take a scenario:
1. statement 1;
2. statement 2;
3. statement 3;
4. statement 4;
5. statement 5;//exception occurs
6. statement 6;
7. statement 7;
8. statement 8;
9. statement 9;
10. statement 10;
Suppose there is 10 statements in your program and there occurs an exception
at statement 5, rest of the code will not be executed i.e. statement 6 to 10 will
not run. If we perform exception handling, rest of the statement will be
executed. That is why we use exception handling in java.
Hierarchy of Java Exception classes
Types of Exception
There are mainly two types of exceptions: checked and unchecked where error
is considered as unchecked exception. The sun microsystem says there are
three types of exceptions:
1. Checked Exception
2. Unchecked Exception
3. Error
Difference between checked and unchecked
exceptions
1) Checked Exception
The classes that extend Throwable class except Runtime Exception and Error
are known as checked exceptions e.g.IOException, SQLException etc. Checked
exceptions are checked at compile-time.
2) Unchecked Exception
The classes that extend Runtime Exception are known as unchecked exceptions
e.g. Arithmetic Exception, Null-Pointer Exception, Array-Index Out-Of-Bounds
Exception etc. Unchecked exceptions are not checked at compile-time rather
they are checked at runtime.
3) Error
Error is irrecoverable e.g. ‘Out Of Memory Error’, ‘Virtual Machine Error’,
Assertion Error etc.
Common scenarios where exceptions may occur
There are given some scenarios where unchecked exceptions can occur. They
are as follows:
1) Scenario where Arithmetic Exception occurs
If we divide any number by zero, there occurs an Arithmetic Exception.
1. int a=50/0;//ArithmeticException
2) Scenario where NullPointerException occurs
If we have null value in any variable, performing any operation by the variable
occurs an NullPointerException.
1. String s=null;
2. System.out.println(s.length());//NullPointerException
3) Scenario where NumberFormatException occurs
The wrong formatting of any value, may occur NumberFormatException.
Suppose I have a string variable that have characters, converting this variable
into digit will occur NumberFormatException.
1. String s="abc";
2. int i=Integer.parseInt(s);//NumberFormatException
4) Scenario where ArrayIndexOutOfBoundsException occurs
If you are inserting any value in the wrong index, it would result
ArrayIndexOutOfBoundsException as shown below:
1. int a[]=new int[5];
2. a[10]=50; //ArrayIndexOutOfBoundsException