try-catch-finally执行机制

来源:互联网 发布:日历软件 编辑:程序博客网 时间:2024/06/05 20:05

finally的执行

如下的程序所示,注释中是执行的顺序

public class Test {
 public static void main(String[] args) { 
  System.out .println(test ());  //1、9
 }  
 public static String test() { 
  try { 
   System.out .println("try block");  //2
   return test1 ();        //3、6、8
  } finally { 
   System.out .println("finally block");//7、
   //return "finally";   这一句如果执行,最后一个输出将是finally而不是after return   
  } 
 } 
 public static String test1() { 
  System.out .println("return statement");  //4
  return "after return";       //5
 } 
}

finally其实是仅在return ; 语句执行前执行,如果return 一个函数,那么会先执行函数,但如果函数内有(return ;)语句,那么finally就会在这个(return ;)语句前执行。除非调用system.exit()让程序退出或断电等因素致使程序中止,否则,无论任何因素,finally块都一定会执行!!
原创粉丝点击