try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后?

2018-03-02 08:28:14来源:cnblogs.com作者:pig-tong人点击

分享

这是一道面试题,首先finally{}里面的code肯定是会执行的,至于在return前还是后,

看答案说的是在return后执行,我觉得不对,百度了一下,有说return前的,有说return后的,还有return中间执行的。遂做了一个小测试如下:

        static void Main(string[] args)        {             //测试            Test();            System.Console.WriteLine("结束了");            System.Console.ReadLine();        }        /// <summary>        /// 测试        /// </summary>        /// <returns></returns>        private static int Test()        {            try            {                System.Console.WriteLine("好,开始了");                return ReturnInt();            }            catch (Exception exception)            {                System.Console.WriteLine("我是异常");                throw;            }            finally            {                System.Console.WriteLine("我是finally");            }        }       /// <summary>       /// 返回数字       /// </summary>       /// <returns></returns>        private static int ReturnInt()        {            System.Console.WriteLine("我是return");            return 1;        }

  测试结果如下:

  所以我觉得finally{}里面的code是在return之后执行的。

  此测试较粗糙,如有其它方法证明,望告知。

相关文章

    无相关信息

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台