多层的异常捕获

CatchWho.Java

源代码:

public class CatchWho { 

    public static void main(String[] args) { 

        try { 

            try { 

                throw new ArrayIndexOutOfBoundsException(); //要处理的问题

             } 

            catch(ArrayIndexOutOfBoundsException e) { 

               System.out.println("ArrayIndexOutOfBoundsException"+  "/内层try-catch"); 

            } 

            throw new ArithmeticException(); 

        } 

        catch(ArithmeticException e) { 

            System.out.println("发生ArithmeticException"); 

        } 

        catch(ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException" + "/外层try-catch"); 

        } 

    } 

}

预测程序运行结果:ArrayIndexOutOfBoundsException/外层try-catch

                     发生ArithmeticException

                     ArrayIndexOutOfBoundsException/外层try-catch

实际运行结果截图:

源代码:

public class CatchWho2 { 

    public static void main(String[] args) { 

        try {

            try { 

                throw new ArrayIndexOutOfBoundsException(); 

            } 

            catch(ArithmeticException e) { 

                System.out.println( "ArrayIndexOutOfBoundsException" + "/内层try-catch"); 

            }

            throw new ArithmeticException(); 

        } 

        catch(ArithmeticException e) { 

            System.out.println("发生ArithmeticException"); 

        } 

        catch(ArrayIndexOutOfBoundsException e) { 

            System.out.println( "ArrayIndexOutOfBoundsException" + "/外层try-catch"); 

        } 

    } 

}

预测程序运行结果:ArrayIndexOutOfBoundsException/内层try-catch

               发生ArithmeticException

                  ArrayIndexOutOfBoundsException/外层try-catch

实际运行结果截图:

原文地址:https://www.cnblogs.com/1995-qxl/p/4964266.html