错误的出现并不总是编写应用程序人的原因,有时应程序会因为应用程序的最终用户引发或运行代码的环境而发生错误。无论如何,我们都应预测应用程序中出现的错误,并相应的进行编码。C#处理错误的机制可以为每种错误提供自定义的处理方法,并把识别错误的代码于处理错误的代码分离开来。
一、异常类
在C#中,当出现某个特殊的异常错误条件时,就会创建(或抛出)一个异常对象。这个对象包含有助于跟踪问题的信息。.NET提供了许多预定义的异常类,我们也可以创建自己的异常类。
二、捕获异常
为了在C#代码中处理可能的错误情况,一般把程序中的相关部分分成三种不同类型的代码块:
- Try块包含的代码组成了程序的正常操作部分,但这部分可能遇到某些严重的错误
- Catch快包含的代码处理各种错误情况,这些错误是执行try块中的代码遇到的,这个块还可以用于记录错误。
- Finally块包含的代码清理资源或执行通常要在try块或catch块末尾执行的其他操作。无论是否抛出异常,都会执行finally块。Finally块完全可选的,如果不需要清理代码,就不需要包含次块。
三、System.Exception属性
在System.Exception异常类中有许多其他属性:
属性 | 说明 |
Data | 这个属性可以给异常添加键/值语句,以提供关于异常的额外信息 |
HelpLink | 链接到一个帮助文件上,以提供关于该异常的更多的信息 |
InnerException | 如果此异常是在catch块中抛出,它就会包含把代码发送到catch块中的异常对象 |
Message | 描述错误情况的文本 |
Source | 导致异常的应用程序名或对象名 |
StackTrace | 栈上方法调用的详细信息,它有助于跟踪抛出异常的方法 |
TargetSite | 描述抛出异常的方法的.NET反射对象 |
如果编写一个可执行程序,就应捕获尽可能多的异常,并以合理的方式处理它们。