A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xieguanxiong 黑马帝   /  2012-3-2 18:38  /  2646 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

try
{
        代码       
}
catch (异常对象)
{
               代码
}
finally
{
             代码
}
有什么方法可以不让finally中的代码执行吗?

4 个回复

倒序浏览
那为什么要finally呢?  finally这块不管有没有发生异常都会执行的,如果你要不想执行,那就在里面if条件判断一下,
回复 使用道具 举报
finally 块中的代码总是被执行,如果有特殊原因的话,想做到不执行finally块中的逻辑,其实也很简单,可以再try   。。。catch 块之外声明一个 标志变量默认为true,可以再 catch 和try中 修改该变量的值,使该变量起到开关的作用,在finally 中判断 开关的值然后决定是否执行代码。 当然,这样finally也就失去其意义。
回复 使用道具 举报
finally一般是不会被执行的,但有一种情况不会被执行,那就是系统推出时,System.exit(0).
回复 使用道具 举报
是滴,楼上正解,如果try中的代码出现异常的话,finally中的一定会执行的,但如果在try中执行,system.exit();这就退出虚拟机了,在牛逼的句子也执行不了了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马