×

Java try catch

Java try catch

There can be statements that can cause exceptions, and the exception leads to abnormal termination of the program. To avoid that abnormal termination, those statements that look potent to raise an exception should be put in the try block. The catch block executes when an exception is raised in the try block.  By using the Java try-catch block, we can handle the exception. In this topic, we are going to discuss how try-catch block helps to handle exceptions.

Java try-catch syntax

The syntax of the try-catch is as follows:

 try
{
//statements that may cause exceptions
}
catch(ExceptionClass obj)
{
//statements
} 

Significance of Java try-catch block

Let’s try to understand what will happen if one omits the try-catch block with the help of a program.

FileName: TryCatchExample.java

 public class TryCatchExample
{ 
// main method
public static void main(String argvs[])
{
int val = 70 / 0; // statement responsible for exception. Line no 7
// print statement
System.out.println("The division operation has been successfully completed.");
}
} 

Output:

Java try catch

Explanation: Observe that the print statement does not get executed. It is because of the exception raised at line number 7. The exception causes the abnormal termination of the program, and this behavior is not correct. Those statements that are not causing the exception should be executed, and their output should be displayed. To achieve the same, the Java try-catch block is used. Let’s see how to handle the above exception.

FileName: TryCatchExample1.java

 public class TryCatchExample1
{ 
// main method
public static void main(String argvs[])
{
try
{
int val = 70 / 0;
}
catch(ArithmeticException e)
{
System.out.println(e);  
}
// print statement
System.out.println("The division operation has been successfully completed.");
}
} 

Output:

Java try catch

Explanation: Now, we observe that the exception is handled. The print statement that followed the catch block got executed at this time, and the program terminates normally.

Proper Handling of Java try-catch

One should understand that the Java try-catch blocks should be handled with care. Suppose, one is sure that some statements in the code that do not throw exceptions, then such statements should not be put in the try block. Observe the following code.

FileName: TryCatchExample2.java

 public class TryCatchExample2
{ 
// main method
public static void main(String argvs[])
{
try
{
int val = 70 / 0; // line 8
// print statement 1
System.out.println("Hello Java. The language is awesome.");
}
catch(ArithmeticException e)
{
System.out.println(e);  
}
// print statement 2
System.out.println("The division operation has been successfully completed.");
}
} 

Output:

Java try catch

Explanation: Notice the first print statement (at line 10) does not get printed. The reason for the non-execution of the first print statement is line 8. At line 8, the java.lang.ArithmeticeException is raised. Therefore, the control shifts to the catch block. Thus, any statement that is inside the try block and follows line 8 never gets executed. Hence, the first print statement is not get printed on the console. The appropriate way is to put print statement 1 outside the try-catch block. Thus, we can say that only those statements that can raise an exception should be put inside the try block.

Working of the try-catch Block

The following flow diagram demonstrates the working of the try-catch block.

Java try catch

Remember:

  • It is not possible to have multiple try blocks with a single catch block. If we try to do the same, a compile-time error is generated.
  • Each try block must be followed by at least one catch block or finally.
  • There can be multiple catch blocks for one try block. Multiple catch blocks come in very handy to handle each exception in a different way.
  • A catch block may handle multiple type exceptions. Ensure that each type of exception is separated by a vertical bar (|). It reduces code duplication and increases efficiency. For example:
 try
{
// code
}
catch (ExceptionType1 | Exceptiontype2 | Exceptiontype2 ex)
{
// catch block
} 

Even though multiple catch blocks can be present for a single try block, at a time, only one catch block is executed. The ordering of the catch blocks should always be from specific to general, which means the ArithmeticException should always come before the Execption; otherwise, a compilation error is thrown.

FileName: TryCatchExample3.java

 public class TryCatchExample3
{ 
// main method
public static void main(String argvs[])
{
try
{   
int arr[] = new int[6];  // line 9
// arr[6] = 8; // line 10 
arr[6] = 130 / 0; // line 11
}   
// multiple catch blocks for handling different types of exception
catch(ArithmeticException ae) 
{ 
  System.out.println("In the Arithmetic Exception catch block " + ae); 
}   
catch(ArrayIndexOutOfBoundsException aie) 
{ 
  System.out.println("In the ArrayIndexOutOfBounds Exception catch block. " + aie); 
}   
catch(Exception ex) 
{ 
  System.out.println("In the Parent Exception catch block " + ex); 
}     
System.out.println("Code after the try catch block.");   
}
} 

Output:

Java try catch

Explanation: It is obvious by looking at the output that only the catch block of ArithmeticException got exsecuted, and the reason for this is line 11. Line 11 is potent to generate two exceptions one is ArithmeticException (130 / 0), and another is ArrayIndexOutOfBounds (arr[6]) exception. However, the operation 130 / 0 is executed first, and hence, the ArithmeticException is also raised first. In order to raise the ArrayIndexOutOfBounds exception, uncomment line 10.


Related Topics

Java Primitive Data Types

Primitive data types are the simplest data types in a programming language. They’re predefined in the language. The names of the primitive types are quite descriptive of the values that...

2 minutes read.

Transaction Management in java

Definition: A database application is an application that is running against a relational database and executes one or more transactions. A transaction is an executing program that contains some database operations,...

4 minutes read.

Java Get File Size

There are three ways to get the file size in Java. Using Java InputOutput Using NewInputOutput Library Files.size() Method FileChannel.size() Method Using Apache Commons InputOutput Using Java InputOutput: The Java IO package offers the classes that deal...

5 minutes read.

Why main method is static in Java

The method serves as the entry point for Java programmes or simply the point from which the programme begins to run. As a result, it is one of the most...

4 minutes read.

Rehashing in Java

The most crucial idea mostly in the data structure is hashing, which is utilized to change a particular key into some other value. The hash function can be used to...

7 minutes read.

Applet Life Cycle in Java

In this article, we are going to acknowledge you about what a applet is, what is its life cycle and stages in life cycle, along with the syntax and example...

4 minutes read.

String Coding Interview Questions in Java

What is String in Java?In Java, a String is a Class that is defined in the java.lang package. It isn't a basic data type like int or long. Character Strings...

5 minutes read.

Java Static Keyword

It can be either said that static declares the value to be the same, not only in the instance of a class but also as the whole. To declare a variable...

6 minutes read.

Java String hashCode() method

Java String hashCode() method returns hash code for current String. hash code for string object is computed as s[0]*31^(n - 1) + s[1]*31^(n - 2) + ... + s[n - 1] Using int...

2 minutes read.

Java String indexOf() method

Java String indexOf() method returns index of a given character or substring present in a String. Methods Description int indexOf(int ch)     It returns index position for the given char value.int indexOf(int ch,...

2 minutes read.

Checked vs Unchecked Exceptions in Java

In this tutorial, we will discuss Java's checked and unchecked Exceptions. Exception An exception is an undesirable event that disrupts the normal flow of the program. An exception is thrown at runtime. It...

4 minutes read.

Relatively Prime in Java

In this article, you will be very well equipped with a knowledge of a relatively prime number and also Java programs to determine whether a given integer is a relatively...

4 minutes read.

How to run Java Program in Command Prompt

How to run Java Program in Command Prompt In this section, we will learn how to write, save, compile, and execute or run a Java program in the Command Prompt. Note: One...

3 minutes read.

Java Buffered Writer

BufferWriter Class: It is used to write the data more efficiently. This class is present in the java.io package, it inherits the data from the Writer class. Writer class is...

4 minutes read.

Java Strictfp Keyword

Strictfp is used to impose limits on floating-point calculation. It ensures that we will get the same result on every platform while performing an operation with the floating-point variable. The floating-point calculation is platform-dependent due...

1 minute read.

Resultset in java

Resultset: A result set is an interface that is present in the package java.sql and the resultset is used to store the data that are returned from the database table after...

5 minutes read.

How to get Day Name from Date in Java

We'll write a Java application to extract the day's name from the Date in this section. When dealing with Date and time in Java, the following classes are used. Class for Calendars:...

6 minutes read.

Functional Interface in Java 8

A brief introduction to Interface in Java: Interfaces in Java are basically the blue print of classes. Before the appearance of Java 8, it was only possible to declare one or...

11 minutes read.

Bully Algorithm code in Java

Election algorithms include the bully algorithm, mainly used to select a coordinate. To find a coordinator in a distributed system that can carry out the tasks required by other processes,...

4 minutes read.

Association in Java

In Java, association refers to the link between two classes established by their objects. One-to-one, one-to-many, and many-to-many connections are managed via association. The Association defines the multiplicity between objects...

5 minutes read.