源程序如下:
using System;
namespace Exception_Test
{
class Class1
{
static void F()
{
try
{
G();
}
catch(Exception e)
{
Console.WriteLine("Exception in F:"+e.Message);
e=new Exception("F");
throw;
}
}
/*------------------------------------------------------------------------------------------------------*/
static void G()
{
throw new Exception("G");
}
/*------------------------------------------------------------------------------------------------------*/
[STAThread]
static void Main(string[] args)
{
try
{
F();
}
catch(Exception e)
{
Console.WriteLine("Exception in Main:"+e.Message);
}
Console.ReadLine();
}
}
}
这是书上的一个try-catch使用的例子,运行结果是:
Exception in F:G
Exception in Main:G
请问在处处理完G()方法的异常后,已经改变了异常变量 new Exception("F"); 再次将异常 抛出.
结果应该是Exception in Main:F 才对啊,为什么输出还是G呢?
书上说这个再次抛出的异常与最初捕获的异常是同一个, 异常变量明明改变了啊