错误处理

  本章的第一部分讨论如何在应用程序的开发过程中查找和改正错误,使这些错误不会在发布的代码中出现。但有时,我们知道可能会有错误发生,但不能100%地肯定它们不会发生。此时,最好能预料到错误的发生,编写足够健壮的代码以处理这些错误,而不必中断程序的执行。

  错误处理就是用于这个目的。本节将介绍异常和处理它们的方法。异常是在运行期间代码中产生的错误,或者由代码调用的函数产生的错误。这里的 “错误”定义要比以前更含糊,因为异常可能是在函数等结构中手工产生。例如,如果函数的一个字符串参数不是以 a 开头,就产生一个异常。严格来讲,从该函数的外部看这并不是一个错误,但调用该函数的代码会把它看成错误。

  你已在本书前面已经遇到几次异常了。最简单的示例是试图定位一个超出范围的数组元素,例如:

  1. int[] myArray = { 1, 2, 3, 4 };
  2. int myElem = myArray[4];

  这会产生如下异常信息,并中断应用程序的执行:

  1. Index was outside the bounds of the array.
  在前面的章节中已经看到了异常辅助信息窗口的一些示例。该窗口中的一行把它与出错的代码连接起来,还包含.NET 帮助文件中相关主题的链接和一个 查看详细信息… 链接,利用该链接可以找打所发生异常的更多信息。

  异常在名称空间中定义,大多数异常的名称清晰地说明了它们的用途。在这个示例中,产生的异常称为 System.IndexOutOfRangeException,说明我们提供的 myArray 数组索引不在允许使用的索引范围内。只有在异常未处理时,这个信息才会显示出来,应用程序才会中断执行。下一节将讨论如何处理异常。