Exceptions These are the events that occur due to the programmer error or machine error which causes a disturbance in the normal flow of execution of the program.
Handling Multiple exceptions: There are two methods to handle multiple exceptions in java.
- Using a Single try-catch block try statement allows you to define a block of code to be tested for errors, and we can give exception objects to the catch blow because this all the exceptions inherited by the Exception class.
- The second method is to create individual catch blocks for the different exception handler.
Hierarchy of the exceptions:
Divide by zero: This Program throw Arithmetic exception because of due any number divide by 0 is undefined in Mathematics.Â
Java
// Java Program to Handle Divide By Zero Exception import java.io.*; class GFG {     public static void main(String[] args)     {         int a = 6 ;         int b = 0 ;         System.out.print(a / b);         // this line Throw ArithmeticException: / by zero     } } |
Output:
Handling of Divide by zero exception: Using try-Catch BlockÂ
Java
// Java Program to Handle Divide By Zero Exception import java.io.*; class GFG {     public static void main(String[] args)     {         int a = 5 ;         int b = 0 ;         try {             System.out.println(a / b); // throw Exception         }         catch (ArithmeticException e) {             // Exception handler             System.out.println(                 "Divided by zero operation cannot possible" );         }     } } |
Output:
Multiple Exceptions (ArithmeticException and IndexoutOfBound Exception)
- Combination of two Exception using the | operator is allowed in Java.
- As soon as the first exception occurs it gets thrown at catch block.
- Check of expression is done by precedence compiler check rule from right to left of the expression.
Java
// Java Program to Handle multiple exception import java.io.*; Â
class GFG { Â Â Â Â public static void main(String[] args) Â Â Â Â { Â Â Â Â Â Â Â Â try { Â Â Â Â Â Â Â Â Â Â Â Â int number[] = new int [ 10 ]; Â Â Â Â Â Â Â Â Â Â Â Â number[ 10 ] = 30 / 0 ; Â Â Â Â Â Â Â Â } Â Â Â Â Â Â Â Â catch (ArithmeticException e) { Â Â Â Â Â Â Â Â Â Â Â Â System.out.println( Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "Zero cannot divide any number" ); Â Â Â Â Â Â Â Â } Â Â Â Â Â Â Â Â catch (ArrayIndexOutOfBoundsException e) { Â Â Â Â Â Â Â Â Â Â Â Â System.out.println( Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "Index out of size of the array" ); Â Â Â Â Â Â Â Â } Â Â Â Â } } |
Output:
Explanation: Here combination of ArrayIndexOutOfBounds and Arithmetic exception occur, but only Arithmetic exception is thrown, Why?
According to the precedence compiler check number[10]=30/0 from right to left. That’s why 30/0 to throw ArithmeticException object and the handler of this exception executes Zero cannot divide any number.
Another Method of Multiple Exception: we can combine two Exception using the | operator and either one of them executes according to the exception occurs.
Java
// Java Program to Handle multiple exception import java.io.*; Â
class GFG {     public static void main(String[] args)     {         try {             int number[] = new int [ 20 ];             number[ 21 ] = 30 / 9 ;             // this statement will throw             // ArrayIndexOutOfBoundsException e         }         catch (ArrayIndexOutOfBoundsException                | ArithmeticException e) {             System.out.println(e.getMessage());             // print the message         }     } } |
Output: