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.