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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我干阿衰 中级黑马   /  2015-5-13 21:30  /  716 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问finally语句还会不会执行?
public class ExceptionTest {
        public static void main(String[] args) {
                int x = 10;
                int y = 0;
               
                try {
                        System.out.println(x/y);
                } catch (ArithmeticException e) {
                        e.printStackTrace();
                       
                        //JVM退出了, 地震了
                        System.exit(0);
                       
                } finally {
                        System.out.println("异常解决");
                }
               
                System.out.println("over");
        }
}

4 个回复

倒序浏览
不会执行了  jvm已经退出了 所以后边不会执行了
回复 使用道具 举报
  1. package cxw.study.net.ie_server;

  2. public class StringDemo {
  3.         public static void main(String[] args)  {
  4.                         gettye();
  5.         }
  6.         @SuppressWarnings("finally")
  7.                 public static int gettye(){
  8.                 int x = 10;
  9.             int y = 0;
  10.                 try {
  11.                 System.out.println(x/y);
  12.         } catch (ArithmeticException e) {
  13.                 e.printStackTrace();
  14.                 return x;
  15.                 //JVM退出了, 地震了
  16.              //   System.exit(0);
  17.                
  18.         } finally {
  19.                 System.out.println("异常解决");
  20.                 return y;
  21.         }
  22.         }   //这样finally就能够执行  它只要JVM没有关闭,就一定会执行的语句
  23. }
复制代码
回复 使用道具 举报
不会,虚拟机都退出了,后面的都不会执行
回复 使用道具 举报
看你有标识一个地震啦,应该是知道不会执行后边所有的语句了的呀!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马