您的位置:首页 > 编程语言 > C#

c#中的异常处理

2012-10-29 22:43 232 查看
class Program
{
static string[] eTypes = { "none", "simple", "index", "nested index" };

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 reached.Message:\n\"{0}\"", e.Message);

}
catch
{
Console.WriteLine("Main() general catch block reached.");
}
finally
{
Console.WriteLine("Main() finally block reached.");

}
}

Console.ReadKey();

}

static void ThrowException(string etype)
{
// throw new NotImplementedException();
Console.WriteLine("ThrowException{\"{0}\"} reached.",etype);
switch(etype)
{
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\") " + "try 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;

}
}
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: