Java Program to Handle Divide By Zero and Multiple Exceptions
Last Updated :
19 May, 2021
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
import java.io.*;
class GFG {
public static void main(String[] args)
{
int a = 6 ;
int b = 0 ;
System.out.print(a / b);
}
}
|
Output:
Handling of Divide by zero exception: Using try-Catch Block
Java
import java.io.*;
class GFG {
public static void main(String[] args)
{
int a = 5 ;
int b = 0 ;
try {
System.out.println(a / b);
}
catch (ArithmeticException e) {
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
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
import java.io.*;
class GFG {
public static void main(String[] args)
{
try {
int number[] = new int [ 20 ];
number[ 21 ] = 30 / 9 ;
}
catch (ArrayIndexOutOfBoundsException
| ArithmeticException e) {
System.out.println(e.getMessage());
}
}
}
|
Output:
Share your thoughts in the comments
Please Login to comment...