try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行

2021-11-05 19:15发布

11条回答
我是大脸猫
2021-11-09 10:43

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

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

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


一周热门 更多>