找回密码
 注册
搜索
热搜: 回贴

关于C#异常处理!

2009-12-13 13:47| 发布者: admin| 查看: 58| 评论: 0|原作者: 云天青

△usingSystem; namespa......


using System;
namespace ConsoleApplication2
{
///
/// Class1 的摘要说明。
///

class Class1
{
static string[] eTypes={"none","simple","index","nested index"};
[STAThread]
static void Main(string[] args)
{
foreach(string eType in eTypes)
{
try
{
Console.WriteLine("Main() try block reached.");
Console.WriteLine("ThrowException(\"{0}\") called.",eType);
ThrowException(eType);
Console.WriteLine("Main() try block continues.");
}
catch(System.IndexOutOfRangeException e)
{
Console.WriteLine("Main() System.IndexOutOfRangeException catch "+
" block reched.Message:\n\"{0}\"",e.Message);
}
catch
{
Console.WriteLine("Main() general catch block reached.");
}
finally
{
Console.WriteLine("Main() finally block reached.");
}
Console.WriteLine();
}
}
static void ThrowException(string exceptionType)
{
Console.Write("ThrowException(\"{0}\")reached.",exceptionType);
switch(exceptionType)
{
case "none":
Console.WriteLine("Not throwing an exception.");
break;
case "simple":
Console.WriteLine("Throwing System.Exception.");
throw(new System.Exception());
break;
case "index":
Console.WriteLine("Throwing System.IndexOutOfRangeexception.");
eTypes[4]="error";
break;
case "nested index":
try
{
Console.WriteLine("ThrowException(\"nested index\"):"+"tyr block reached.");
Console.WriteLine("ThrowException(\"index\")called.");
ThrowException("index");
}
catch
{
Console.WriteLine("ThrowException(\"nested index\")general"+" catch block reached.");
}
finally
{
Console.WriteLine("ThrowException(\"nested index\")finally"+"block reached.");
}
break;
}
}
}
}

此异常的处理说明,异常产生后,如果在当前未做Try处理,则会返到上一级,如果还未做,则返回上一级的上一级....以此类推.如果被任意一级Catch到,则上一级不会再得到.

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 17:32 , Processed in 0.187505 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部