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.