在Java中,我们可以嵌套try和catch块。这意味着,一个try语句可以位于另一个try的块内。如果内部try块没有针对特定异常的validate catch语句,则控制将移至匹配的catch语句所期望的下一个try语句catch处理程序。这将继续进行,直到其中一个catch语句成功执行或完成所有嵌套的try语句为止。如果没有任何catch语句匹配,则Java运行时系统将处理该异常。
嵌套try-catch块的语法如下:
try{ try{ //...- } catch (Exception1 e){ //处理异常的语句 } } catch (Exception 2 e2){ //处理异常的语句 }
考虑一下程序:
import java.io.*; class Nested_Try { public static void main(String args[]) { try{ DataInputStream X=new DataInputStream(System.in); System.out.print("Enter First No:"); int a = Integer.parseInt (X.readLine()); System.out.print("Enter Second No:"); int b = Integer.parseInt (X.readLine()); 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 Input"); } catch (IOException e){ System.out.println ("IO Error"); } } }