处理和引发异常
更新:2007 年 11 月
程序必须能够统一处理在执行期间发生的错误。公共语言运行库提供了一个模型,以统一的方式通知程序发生的错误,从而为设计容错软件提供了极大的帮助。所有的 .NET Framework 操作都通过引发异常来指示出现错误。
传统上,语言的错误处理模型依赖于语言检测错误和查找错误处理程序的独特方式,或者依赖于操作系统提供的错误处理机制。运行库实现的异常处理具有以下特点:
处理异常时不用考虑生成异常的语言或处理异常的语言。
异常处理时不要求任何特定的语言语法,而是允许每种语言定义自己的语法。
允许跨进程甚至跨计算机边界引发异常。
与其他错误通知方法(如返回代码)相比,异常具有若干优点。不再有出现错误而不被人注意的情况。无效值不会继续在系统中传播。不必检查返回代码。可以轻松添加异常处理代码,以增加程序的可靠性。最后,运行库的异常处理比基于 Windows 的 C++ 错误处理更快。
由于执行线程例行地遍历托管代码块和非托管代码块,因此运行库可以在托管代码或非托管代码中引发或捕捉异常。非托管代码可以同时包含 C++ 样式的 SEH 异常和基于 COM 的 HRESULT。
本节内容
异常概述
提供公共语言运行库异常的概述。异常类和属性
描述异常对象的元素。异常层次结构
描述一些异常,大多数异常都从这些异常派生。异常处理基础知识
解释如何使用 catch、throw 和 finally 语句处理异常。处理异常的最佳做法
描述建议的异常处理方法。处理 COM 互操作异常
描述如何处理在非托管代码中引发和捕捉的异常。
参考
Exception 类
所有异常都从其继承的类的参考信息。ApplicationException 类
所有应用程序生成的异常都应从其派生的类的参考信息。SystemException 类
所有系统生成的异常都从其派生的类的参考信息。
相关章节
高级 COM 互操作性
描述异常在托管代码和非托管代码之间的工作机制。如何:映射 HRESULT 和异常
描述异常在托管代码和非托管代码之间的映射。