The following code snippet explains the syntax of a nested try…catch block.
Syntax:
.... try { statement 1; statement 2; try { statement 1; statement 2; } catch(Exception e) { } } catch(Exception e) { } ....
When nested try blocks are used, the inner try block is executed first. Any exception thrown in the inner try block is caught in the corresponding catch block. If a matching catch block is not found, then catch block of the outer try block are inspected until all nested try statements are exhausted. If no matching blocks are found, the Java Runtime Environment handles the execution.
Lets have an example that uses the nested try-catch blocks.
import java.io.*; public class NestedTryCatchBlock{ public static void main (String args[])throws IOException { int num=2,res=0; try{ FileInputStream fis=null; fis = new FileInputStream (new File (args[0])); try{ res=num/0; System.out.println("The result is"+res); } catch(ArithmeticException e){ System.out.println("divided by Zero"); } } catch (FileNotFoundException e){ System.out.println("File not found!"); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("Array index is Out of bound! Argument required"); } catch(Exception e){ System.out.println("Error.."+e); } } }
Output of the program:
In this given example we have implemented nested try-catch blocks concept where an inner try block is kept with in an outer try block, that’s catch handler will handle the arithmetic exception. But before that an ArrayIndexOutOfBoundsException will be raised, if a file name is not passed as an argument while running the program.
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…