public class Pixel {
public static void main(String [] args) {
try {
System.out.println(bn());
}
catch(Exception e){
System.out.println("aaaaaa");
}
}
public static String bn() /*throws Exception*/{
/* throw new Exception("ppppp");*/
try {
System.out.println("bbbbbb");
return get1();
}
catch(Exception e){ return "111111";}
finally {
System.out.println("cccccc");
return "2222222";
}
}
public static String get1(){
System.out.println("ddddd");
return "3333333";
}
}
运行输出:
首先try 运行出错后才能运行catch ,而finally 是一定要被运行的。所以主函数try被运行时,调用bn()函数。
bn()方法运行try catch finally。运行try时候,先输出
System.out.println("bbbbbb");
然后运行到return get1();,调用get1()方法。
输出System.out.println("ddddd");
当运行到return "3333333";时,程序就运行结束了。然而并没有运行finally.这是不可以的。
所以选择不执行。return "3333333";
执行try后没有报错,所以不执行catch。
直接执行finally。
输出 "cccccc"
和"2222222"