黑马程序员技术交流社区

标题: finally里的代码怎么样就不执行了? [打印本页]

作者: xieguanxiong    时间: 2012-3-2 18:38
标题: finally里的代码怎么样就不执行了?
try
{
        代码       
}
catch (异常对象)
{
               代码
}
finally
{
             代码
}
有什么方法可以不让finally中的代码执行吗?
作者: 欧阳博    时间: 2012-3-3 18:29
那为什么要finally呢?  finally这块不管有没有发生异常都会执行的,如果你要不想执行,那就在里面if条件判断一下,
作者: 段玉超    时间: 2012-3-4 09:04
finally 块中的代码总是被执行,如果有特殊原因的话,想做到不执行finally块中的逻辑,其实也很简单,可以再try   。。。catch 块之外声明一个 标志变量默认为true,可以再 catch 和try中 修改该变量的值,使该变量起到开关的作用,在finally 中判断 开关的值然后决定是否执行代码。 当然,这样finally也就失去其意义。
作者: 蒙武辉    时间: 2012-3-4 13:03
finally一般是不会被执行的,但有一种情况不会被执行,那就是系统推出时,System.exit(0).
作者: 张冬冬    时间: 2012-3-4 14:48
是滴,楼上正解,如果try中的代码出现异常的话,finally中的一定会执行的,但如果在try中执行,system.exit();这就退出虚拟机了,在牛逼的句子也执行不了了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2