首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA在try内return是不是还会执行finish(转载)

2012-10-21 
JAVA在try内return是否还会执行finish(转载)1.首先尝试在try中return,看finally是否能执行到,测试代码如下

JAVA在try内return是否还会执行finish(转载)
1.首先尝试在try中return,看finally是否能执行到,测试代码如下:

public class FinallyTest {
结果是:

public String returnString() {

String str;
try {
str = "Hello, William";
System.out.println("This is try block.");
return str;
}
catch(Exception e) {
System.out.println("This is catch block.");
}
finally {
System.out.println("This is finally block.");
}
return null;
}

}

This is try block.
This is finally block.

可见不管try里是否有return,finally最终仍会执行到。

2.但是在try中System.exit(0),finally还会不会执行呢?还是来段测试代码,如下:

public class FinallyTest1 {
结果是:

public static String returnString() {
 
  String str;
  try {
   str = "This is try block.";
   System.out.println(str);
   System.exit(0);
  }
  catch(Exception e) {
   System.out.println("This is catch block.");
  }
  finally {
   System.out.println("This is finally block.");
  }
  return null;
}

}

This is try block.

可见,这种情况下,finally还未被执行,程序就退出了。碰到这种情况,如果还想在程序退出之前执行一些代码,可以参见addShutdownHook这个函数。具体这个函数的用法,将在另外的博客中详解。

 

热点排行