1、输出调试信息:
可以使用函数Debug.WriteLine();
Trace.WriteLine();
区别,在于前者只有在调试状态下才输出,后者还可以用于发布版本。
2、try...catch...finally
通过这个函数来捕获异常。
3、附加代码在vs2010中亲自测试通过
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication9
{
class Program
{
static string[] eTypes = { "none", "simple", "index", "nested index" }; //定义异常类型数组并存入string类型的数组中
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."); //普通catch捕获
}
finally //有无异常都始终会输出
{
Console.WriteLine("Main() finally block reached.");
}
Console.WriteLine();
}
Console.ReadKey();
}
static void ThrowException(string exceptionType)
{
Console.WriteLine("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": //生成System.IndexOutOfRangeException.异常
Console.WriteLine("Throwing System.IndexOutOfRangeException.");
eTypes[4] = "error";
break;
case "nested index": //包含自己的try块,其中调用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("ThrowExceptiopn(\"nested index\") finally"
+ " block reached.");
}
break;
}
}
}
}