C#中的try-catch语句怎么用
先给出一个程序:classProgram{staticvoidF(){try{G();}catch(Exceptione){Console.WriteLine("Exce...
先给出一个程序:
class Program
{
static void F()
{
try
{
G();
}
catch (Exception e)
{
Console.WriteLine("Exception in F:" + e.Message);
e = new Exception("F");
throw; //re_throw
}
}
static void G()
{
throw new Exception("G");
}
static void Main(string[] args)
{
try
{
F();
}
catch (Exception e)
{
Console.WriteLine("Exception in Main: " + e.Message);
}
Console.Read();
}
}
此程序的结果为:
Exception in F:G
Exception in Main:G
为什么结果中的第二条语句冒号后是 G 而不是 F 呢? 展开
class Program
{
static void F()
{
try
{
G();
}
catch (Exception e)
{
Console.WriteLine("Exception in F:" + e.Message);
e = new Exception("F");
throw; //re_throw
}
}
static void G()
{
throw new Exception("G");
}
static void Main(string[] args)
{
try
{
F();
}
catch (Exception e)
{
Console.WriteLine("Exception in Main: " + e.Message);
}
Console.Read();
}
}
此程序的结果为:
Exception in F:G
Exception in Main:G
为什么结果中的第二条语句冒号后是 G 而不是 F 呢? 展开
2个回答
展开全部
重新抛出异常的时候,指定异常e就行了,。
要不然,重新抛出的还是原来的那个。
static void F()
{
try
{
G();
}
catch (Exception e)
{
Console.WriteLine("Exception in F:" + e.Message);
e = new Exception("F");
throw e; //re_throw
}
}
要不然,重新抛出的还是原来的那个。
static void F()
{
try
{
G();
}
catch (Exception e)
{
Console.WriteLine("Exception in F:" + e.Message);
e = new Exception("F");
throw e; //re_throw
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询