Just like the [thread=4167]multiple catch blocks[/thread], we can also have multiple try blocks. These try blocks may be written independently or we can nest the try blocks within each other, i.e., keep one try-catch block within another try-block. The program structure for nested try statement is: Code: try { // statements // statements try { // statements // statements } catch (<exception_two> obj) { // statements } // statements // statements } catch (<exception_two> obj) { // statements } Consider the following example in which you are accepting two numbers from the command line. After that, the command line arguments, which are in the string format, are converted to integers. If the numbers were not received properly in a number format, then during the conversion a NumberFormatException is raised otherwise the control goes to the next try block. Inside this second try-catch block the first number is divided by the second number, and during the calculation if there is any arithmetic error, it is caught by the inner catch block. Code: class Nested_Try { public static void main (String args [ ] ) { try { int a = Integer.parseInt (args [0]); int b = Integer.parseInt (args [1]); int quot = 0; try { quot = a / b; System.out.println(quot); } catch (ArithmeticException e) { System.out.println("divide by zero"); } } catch (NumberFormatException e) { System.out.println ("Incorrect argument type"); } } } The output of the program is: If the arguments are entered properly like: Code: [COLOR=RoyalBlue] java Nested_Try 24 6 4 [/COLOR] If the argument contains a string than the number: Code: [COLOR=RoyalBlue] java Nested_Try 24 aa Incorrect argument type [/COLOR] If the second argument is entered zero: Code: [COLOR=RoyalBlue] java Nested_Try 24 0 divide by zero [/COLOR]