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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭润生 中级黑马   /  2012-9-20 21:05  /  2575 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  public void test(){
   try{
    System.out.println("hehheaaaa");
    System.exit(0);//这一句话被执行了,为什么finally里面的语句没有被执行?
   }catch(Exception e){
   
   }finally{
    System.out.println("hahha");
   }
  }

6 个回复

倒序浏览
System.exit(0)是终止当前正在运行的 Java 虚拟机。全部结束了,欧了。
像图形用户界面,打开后在窗口关闭事件里调用System.exit(0)就关闭了窗口。
回复 使用道具 举报
查一下API,System.exit(0)直接 终止当前正在运行的 Java 虚拟机,后面的肯定不会执行了啊
回复 使用道具 举报
fiinally语句只有在一种情况下执行不了,就是遇见了System.exit(0);这句话的意思就是终止当前正在运行的程序。是System。类中的方法。
回复 使用道具 举报
这里System.exit(xx参数)不管参数为何值都会退出程序。如果是0表示正常退出,如果非0表示非正常退出

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


所以说已经结束了虚拟机,就不会再向下执行了啊
回复 使用道具 举报
System.exit(0);//这一句话被执行了,为什么finally里面的语句没有被执行?

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

知道了,记住了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马