Java

Java exception handling

Java exception handling
When the normal flow of the program execution interrupts for any error, then it is called an exception. This type of event can be handled by using a try-catch-finally block. An exception is an object that is used to catch the error and run the statement based on the error condition that is called exception handling. Mainly two types of error are handled by exception handling. These are compiled time errors and run-time errors. The run-time errors are handled by exception handling. How you can handle exceptions in Java is explained in this tutorial.

Syntax:

The syntax of the try-catch-finally block is given below.

try
statement 1… N

catch (ExceptiontType var)
statement 1… N

finally
statement 1… N

Here, if an exception occurs within the try block, then the exception will be thrown to the catch block, and the finally block is optional here. The code of the finally block executes whether an exception occurs or not.

Example-1: Exception handling with a single catch block

The following example shows the use of exception handling using a single catch block. A filename will be taken as input and create an object of BufferedReader to open a file for reading. If the filename exists, then the content of the file will be read line by line and printed. If the file does not exist, then an exception will be generated, and an error message will be printed.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class except1
public static void main(String[] args)
// Create a Scanner object
Scanner in = new Scanner(System.in);
System.out.print("Enter the filename : ");
// Take string data from the user
String FileName = in.next();
try
//Create a reader object
BufferedReader reader = new BufferedReader(new FileReader(FileName));
//Read the first line if the file exists
String line = reader.readLine();
while (line != null)
//Print the line
System.out.println(line);
//Read the next line
line = reader.readLine();

//Close the reader object
reader.close();
//Close the scanner object
in.close();
catch (IOException e)
//Print the error message
System.out.println("File does not exist");


Output:

In the following output,  'hello.txt' is given as the filename that does not exist. So the following message is printed.

Next time, file1.txt is given as filename that exists, and the output shows the content of the file.

Example-2: Exception handling with multiple catch block

How you can use multiple catch blocks to handle multiple exceptions is shown in the following example. Here, three catch blocks are declared. The first catch block will catch the arithmetic error when any illogical arithmetic operation is done. The second catch bock will catch the out of range error of array when an array index value will be tried to read that does not exist. The third catch block will catch the numeric value error when any character or string value is given as an array value. In the code, an array with four indexes is declared and initialized with the integer values that will be taken from the user. The array values are printed using a loop. A division operation is done at the end of the try block.

import java.util.Scanner;
public class except2
public static void main(String[] args)

try

//Declare a numeric array
int num_arr[] = new int[4];
//Create a Scanner object
Scanner in = new Scanner(System.in);
System.out.println("Enter four numbers:");
//Iterate the loop four times
for (int i = 0; i < 4; i++)
//Input number
int n = in.nextInt();
//Assign value to array
num_arr[i] = n;

System.out.println("Array values are:");
//Iterate the loop five times
for (int i = 0; i < 4; i++)
//Print the array values
System.out.println(num_arr[i]);

//Divide and print the value
int num = 50/0;
System.out.print(num);
//Close the scanner object
in.close();

catch(ArithmeticException e)

System.out.println("No number is divisible by 0");

catch(ArrayIndexOutOfBoundsException e)

System.out.println("Out of array index value occurred");

catch(Exception e)

System.out.println("Number value is not given");


Output:

The following output shows that array values are inserted and printed properly, but the third catch block is executed because 50 is divided by 0, which is an error.

The program is executed for the second time. When a string value is given as an array value, then the second exception is generated, and the statement of the second catch block is executed.

Example-3: Exception handling with try-catch-finally block

The use of finally block with the try-catch block is shown in the following example. The code of finally block executes if an exception occurs or not. In the code, an integer value will be taken from the user. If the user gives any string value, then InputMismatchException

will generate and print the message from the catch block. Scanner object will be closed in the finally block if the exception generates or not.

import java.util.Scanner;
import java.util.InputMismatchException;
public class except3
public static void main(String[] args)
//Create a Scanner object
Scanner in = new Scanner(System.in);
System.out.print("Enter a number : ");
try
//Take string data from the user
int number = in.nextInt();
//Print the number
System.out.println("The value of number = " + number);
catch(InputMismatchException e)
//Print error message
System.out.println("String value is not accepted.");

finally
//Close the scanner object
in.close();
System.out.println("Terminated from the program");


Output:

78 is given as input value in the following output after executing the code. So, no exception is generated here. The message from the finally block is printed later.

Next, hello is given as input after executing the code that is a string. So, the exception is generated, and the error message from the catch block is printed. The message from the finally block is printed later.

Conclusion:

Exception handling is a very important and useful feature of any programming language that can be used to hide the real error message from the user and provide the human-readable error message for the user to understand the error properly. This tutorial helps the user to learn different ways of applying exception handling in Java and make their code more appropriate.

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...