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 Exceptionimport 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 Exceptionimport 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 exceptionimport 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 exceptionimport 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:

