Java Nested try block

try block inside a try block is known as a nested try block.

Note: The exception handler must be also nested in case the try block is nested.

 

Syntax of the nested try block

try{         //block of statements

         try{

                  //block of statements

            }catch(Exception handler class){

               }

}catch(Exception handler class){

}

 

NestedTryExample.java

class ArithmaticTest{
    int array[]={10,20,30,40};
    int num1 = 50;
    int num2 = 10;
    
    public void multipleCatchTest(){
     try{
      try{
       //java.lang.ArithmeticException here if num2 = 0.
       System.out.println(num1/num2);
       System.out.println("4th element of given array = " + array[3]);
                
       //ArrayIndexOutOfBoundsException here.
       System.out.println("5th element of given array = " + array[4]);
           //Compile time error here.
           }catch(ArrayIndexOutOfBoundsException e){
        //print exception.
        System.out.println(e);
       }catch(ArithmeticException e){//catch ArithmeticException here.
        //print exception.
        System.out.println(e);
       }
            
       int num = Integer.parseInt("30");
       System.out.println(num);
          //catch NumberFormatException here.
      }catch(NumberFormatException e){
        //print exception.
        System.out.println(e);
      }
    
     System.out.println("Remaining code after exception handling.");
       }
}

public class NestedTryExample {
    public static void main(String args[]){
        //creating ArithmaticTest object
        ArithmaticTest obj =  new ArithmaticTest();
        
        //method call
        obj.multipleCatchTest();
    }
}

Output

5
4th element of given array = 40
java.lang.ArrayIndexOutOfBoundsException: 4
30
Remaining code after exception handling.