黑马程序员技术交流社区

标题: finally为什么没有被执行啊 [打印本页]

作者: 彭润生    时间: 2012-9-20 21:05
标题: finally为什么没有被执行啊
  public void test(){
   try{
    System.out.println("hehheaaaa");
    System.exit(0);//这一句话被执行了,为什么finally里面的语句没有被执行?
   }catch(Exception e){
   
   }finally{
    System.out.println("hahha");
   }
  }


作者: 严海荣    时间: 2012-9-20 21:10
System.exit(0)是终止当前正在运行的 Java 虚拟机。全部结束了,欧了。
像图形用户界面,打开后在窗口关闭事件里调用System.exit(0)就关闭了窗口。
作者: 明光照    时间: 2012-9-20 21:13
查一下API,System.exit(0)直接 终止当前正在运行的 Java 虚拟机,后面的肯定不会执行了啊
作者: 赵永康    时间: 2012-9-20 21:16
fiinally语句只有在一种情况下执行不了,就是遇见了System.exit(0);这句话的意思就是终止当前正在运行的程序。是System。类中的方法。
作者: 张小龙    时间: 2012-9-20 21:17
这里System.exit(xx参数)不管参数为何值都会退出程序。如果是0表示正常退出,如果非0表示非正常退出

和return 相比有以下不同点:return是回到上一层,而System.exit(xx参数)是回到最上层


所以说已经结束了虚拟机,就不会再向下执行了啊
作者: 杨卫腾    时间: 2012-9-20 21:33
System.exit(0);//这一句话被执行了,为什么finally里面的语句没有被执行?

这条语句是退出JVM的  都退出了虚拟机了  怎么还会执行到下面的语句呢。
作者: 彭润生    时间: 2012-9-20 21:47
严海荣 发表于 2012-9-20 21:10
System.exit(0)是终止当前正在运行的 Java 虚拟机。全部结束了,欧了。
像图形用户界面,打开后在窗口关闭 ...

知道了,记住了




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