码迷,mamicode.com
首页 > 其他好文 > 详细

(总结)try{}catch{}中有return,finally{}的执行情况

时间:2015-11-04 17:17:49      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

总结:

1、不管程序有没有bug,也不管try{}catch{}中有没有return语句,finally{}中的代码都会执行(记住这点)。

2、先看例子......

 

看下面的代码:

class Program
    {
        static void Main(string[] args)
        {
            int x = 0;
            x = GetValue();
            Console.WriteLine(" x的值为:" + x);

            Console.ReadKey();
        }

        public static int GetValue()
        {
            int y = 0;
            try
            {
                y = 1;                
                return ++y;
            }
            catch (Exception)
            {
                return y = 0;
            }
            finally
            {
                y = y + 1;
                Console.WriteLine(" y的值为:" + y);
            }
        }
    }

 

输出结果如下:
y的值为:3

x的值为:2

如图:

技术分享

 

再次总结:

1、不管程序有没有bug,也不管try{}catch{}中有没有return语句,finally{}中的代码都会执行(上面已提过);

2、当try或catch中有return时,执行到return语句时,会先把要返回的结果临时保存起来,然后跳到finally中执行相应语句,最后再把保存的返回结果返回,所以上面的x的值仍然为2

(总结)try{}catch{}中有return,finally{}的执行情况

标签:

原文地址:http://www.cnblogs.com/qk2014/p/4936394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!