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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘建华 中级黑马   /  2015-1-11 17:04  /  1250 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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。*/


6 个回复

倒序浏览
我想说的是在try中如果在return之前有个异常语句怎么办呢????????
回复 使用道具 举报
  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.         }
复制代码
回复 使用道具 举报
ruturn代表这个函数已经结束了,还怎么执行finally啊,结果是8
回复 使用道具 举报
个人认为return只是跳出try,而程序会继续执行,finally中的语句一定会执行,无论抛出异常与否,要不在IO流中怎么要在finally关闭IO资源
回复 使用道具 举报
新人弱弱的问句try不是和canth一起用的吗?
回复 使用道具 举报
wuyiai 中级黑马 2015-1-11 21:07:58
7#
  • public static void main(String[] args) {
  •                 System.out.println(getStr());//"return"
  •         }
  •         static String str = "";
  •         private static String getStr() {
  •                 try {
  •                         str = "return";
  •                         return str;
  •                 }
  •                 finally {
  •                         System.out.println("finally");
  •                 }
  •         }

这样不是就可以判断了吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马