标签:
总结:
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