黑马程序员技术交流社区
标题:
finally 的问题
[打印本页]
作者:
乖睡觉咯
时间:
2013-8-20 21:08
标题:
finally 的问题
finally 在什么情况下的时候是不会执行的呢?? 求解释啊??
作者:
yangxin540
时间:
2013-8-20 21:24
虚拟机退出的情况下不会执行
作者:
张玉建
时间:
2013-8-20 21:25
对于finally一般是关闭资源或一定会被执行的代码,
在java中只有一种情况,不会被执行到就是在finally前系统退出,
System.exit(0);finally不会被执行到,
return;finally还是会执行到
class Test {
public static void main(String[] args) {
System.out.println(new Test().test());;
}
int test()
{
try
{
return func1();
}
finally
{
return func2();
}
}
int func1()
{
System.out.println("func1");
return 1;
}
int func2()
{
System.out.println("func2");
return 2;
}
}
在java只有一种系统退出finally不会执行到
作者:
漪顿
时间:
2013-8-20 21:43
只有当JVM被终止掉时,才不会再执行finally中的语句。
像return,break,这些都不好使,finally都会执行,因为jvm还运行
例如:
public static void main(String[] args) {
try {
System.out.println(args[0]);
System.out.println("I'm nomal");
System.exit(0);
} catch (Exception ex) {
System.out.println("I'm exception");
System.exit(0);
} finally {
System.out.println("I'm finally.");
}
}
}
只有上面这种情况finally不会执行,因为
System.exit(0)后,JVM终止了。
作者:
穿靴子的猫
时间:
2013-8-21 00:29
在try catch finally中一直都是会运行最后一步的finally 即是 不管你是代码正常运行或者在执行过程中发生runTime异常都会在finally中执行代码的
一般用法
try{
conn.Open();//打开数据库
}catch{
throw Exception(e);//抛异常
}finally{
conn.Close();//数据库关闭
}
作者:
杨增坤
时间:
2013-8-21 07:19
楼主,你的问题解决了,请把问题的“未解决”更改为”已解决“!
谢谢合作!
作者:
黑马-文鸿利
时间:
2013-8-21 07:31
finally在try ...catch 执行完毕后一定会执行的。
你说的不用执行,从语法上来说做不到。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2