try catch finally 语句块,什么情况finally里的语句不会执行?

yzb123 2009-08-24 11:13:02
try catch finally 语句块,什么情况finally里的语句不会执行?
...全文
304 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengze0123 2011-10-20
  • 打赏
  • 举报
回复
有三种情况
1,在finally语句块中发生了异常;
2,在前面的代码中用了System.exit()推出程序
3,程序所在的线程死亡
haojia0716 2009-08-24
  • 打赏
  • 举报
回复
这种


public class T implements Runnable {
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println("exception");
} finally {
System.out.println("finally");
}
}

public static void main(String[] args) throws Exception {
Thread t = new Thread(new T());
t.setDaemon(true);
t.start();
}
}
feishare 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 knightzhuwei 的回复:]
catch{
System.exit(-1)
}
进到catch里以后程序直接退出 finally就不会执行了
[/Quote]
基本上也就这一情况了吧
java1109 2009-08-24
  • 打赏
  • 举报
回复
2楼正解
不知道还有没有别的情况
knightzhuwei 2009-08-24
  • 打赏
  • 举报
回复
catch{
System.exit(-1)
}
进到catch里以后程序直接退出 finally就不会执行了
chenchengamao 2009-08-24
  • 打赏
  • 举报
回复
finally语句不被执行的唯一情况是先执行了用于终止程序的System.exit()方法。如果在执行try代码块时,突然关掉电脑的电源,所有进程都终止运行,也不会执行finally语句。
liubiaosheng 2009-08-24
  • 打赏
  • 举报
回复
try里面的语句写错误的时候finally就不会执行

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧