黑马程序员技术交流社区

标题: Test6 这样写行吗?求大神帮帮忙 [打印本页]

作者: 刘建华    时间: 2015-1-11 17:04
标题: Test6 这样写行吗?求大神帮帮忙
package com.itheima;
/**
6、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行finally?
@author 刘建华
*/
/*
*在try中写了return,后面又写了finally,是先执行return还是先执行finally?
*思路:定义一个返回值为int的函数。在try中和fianlly中分别对num进行赋值;
*然后再try中return中返回这个num。然后再主函数中打印出num的值。
*步骤:1.建立一个返回值为int类型的函数。
*2.建立try和finally,分别在其中给num不同的值。
*3.在主函数中调用这个函数。打印出num的值。
*/
public class Test6
{
        //打印出num的值
        public static void main(String[] args)
        {
                int num=Num();
                System.out.println(num);
        }
        public static int Num()
                //运行try,给num赋值。
        {
                int num=1;
                try
                {
                        num=8;
                        return num;
                }
                //运行finally,给num赋值。
                finally
                {
                        num=11;
                }
        }
}
/*判断:1。如果打印出了的值为finally中给num赋的值,证明了先执行finally,后执行return。
2。如果打印出的值为try中给num赋的值,证明行执行return,后执行finally。
结果证明:打印出来的值为try中给num赋的值,所以想执行return,后执行finally。*/



作者: 叫我小强    时间: 2015-1-11 17:36
我想说的是在try中如果在return之前有个异常语句怎么办呢????????
作者: noiary    时间: 2015-1-11 18:53
  1.         public static void main(String[] args) {
  2.                 System.out.println(getStr());//"return"
  3.                 System.out.println(str);//"finally"
  4.         }
  5.        
  6.         static String str = "";

  7.         private static String getStr() {
  8.                 try {
  9.                         str = "return";
  10.                         return str;
  11.                 }
  12.                 finally {
  13.                         str = "finally";
  14.                 }
  15.         }
复制代码

作者: lwj123    时间: 2015-1-11 19:46
ruturn代表这个函数已经结束了,还怎么执行finally啊,结果是8
作者: kenfine    时间: 2015-1-11 20:29
个人认为return只是跳出try,而程序会继续执行,finally中的语句一定会执行,无论抛出异常与否,要不在IO流中怎么要在finally关闭IO资源
作者: 自信流云    时间: 2015-1-11 20:43
新人弱弱的问句try不是和canth一起用的吗?
作者: wuyiai    时间: 2015-1-11 21:07

这样不是就可以判断了吗





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