public class Demo {
public static void main( String args[] ){
try{
System.out.println("A");
method1();
}catch(Exception e){
System.out.println("B");
}finally{
System.out.println("Program is end!");
}
}
public static void method1() throws Exception{
System.out.println("method1"); //4
method2();
}
public static void method2() throws Exception{
System.out.println("method2");
method3();
}
public static void method3() throws Exception{
System.out.println("method3");
method4();
}
public static void method4() throws Exception{
System.out.println("method4");
throw new Exception("Exception in method4");//6
}
}
运行结果:
Main()含税中先运行try中的内容输出A,因为method1到method4都抛出异常,所以运行method1()方法,输出method1;依次运行method1()中方法method2(),输出method2;运行method2()中方法method3(),输出method3;运行method3()中方法method4(),输出method4;并抛出异常exception,被catch捕获,运行输出B,最后运行finally中输出Program is end!