一道异常处理执行顺序面试题的简单分析
异常处理,我们写的代码里经常会用到:try{}catch{}finally{}。可是大家真的了解它吗?下面的代码,运行结果是什么?大家猜一下:
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView Code <div id="cnblogs_code_open_425f5646-73ae-41f1-bf1e-4c5e64905df3" class="cnblogs_code_hide"> static class Program
{
static void Main(string[] args)
{
Console.WriteLine(Program.MethodC());
Program.MethodB();
Console.ReadLine();
}
static void MethodA()
{
try
{
throw new NullReferenceException();
}
catch (IndexOutOfRangeException)
{
throw;
}
finally
{
Console.WriteLine("MethodA finally");
}
}
static void MethodB()
{
try
{
MethodA();
}
catch (NullReferenceException)
{
Console.WriteLine("MethodB catch");
}
finally
{
Console.WriteLine("MethodB finally");
}
}
static int i = 1;
static int MethodC()
{
try
{
Console.WriteLine("MethodC try");
return i;
}
finally
{
i = 2;
Console.WriteLine("MethodC finally");
Console.WriteLine("MethodC:"+i);
}
}
页:
[1]