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:

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

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

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

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:

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

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.

Pin It on Pinterest

Share This