如何:使用 try/catch 处理异常(C# 编程指南)
更新:2007 年 11 月
try-catch 块的用途是捕捉和处理工作代码所生成的异常。有些异常可以在 catch 块中处理,解决问题后不会再次引发异常;但更多情况下,您唯一能做的是确保引发适当的异常。
示例
在此示例中,IndexOutOfRangeException 不是最适当的异常:对本方法而言 ArgumentOutOfRangeException 更恰当些,因为错误是由调用方传入的 index 参数导致的。
class TestTryCatch
{
static int GetInt(int[] array, int index)
{
try
{
return array[index];
}
catch (System.IndexOutOfRangeException e) // CS0168
{
System.Console.WriteLine(e.Message);
//set IndexOutOfRangeException to the new exception's InnerException
throw new System.ArgumentOutOfRangeException("index parameter is out of range.", e);
}
}
}
注释
导致异常的代码被括在 try 块中。在其后面紧接着添加一个 catch 语句,以便在 IndexOutOfRangeException 发生时对其进行处理。catch 块处理 IndexOutOfRangeException,并引发更适当的 ArgumentOutOfRangeException 异常。为给调用方提供尽可能多的信息,应考虑将原始异常指定为新异常的 InnerException。因为 InnerException 属性是只读,所以必须在新异常的构造函数中为其赋值。