异常处理
在程序执行时,称为“异常”大量异常状况和错误可以发生。 这些可包括内存不足、资源分配错误和查找文件失败。
Microsoft 基础类库使用严格在 C++ 的 ANSI 标准委员会的建议版本之后建模的异常处理方案。 异常处理程序必须在调用可能遇到一种异常情况的函数之前设置。 如果函数遇到异常状况,会引发异常,而控件传递给异常处理程序。
Microsoft 基础类库中包含的一些类将建立异常处理程序。 其他一些全局函数帮助引发特定的异常并终止程序,如有必要。 这些宏和全局函数分为以下几个类别:
异常宏,结构化异常处理程序。
异常抛出函数,生成特定类型的异常。
函数终止,导致程序终止。
有关示例和更多详细信息,请参见 异常文章。
异常宏
指定异常处理的代码块。 |
|
指定代码块捕捉来自上述 TRY 块的异常。 |
|
指定代码块捕捉来自上述 TRY 块的所有异常。 |
|
指定代码块捕捉来自上述 TRY 块的额外的异常类型。 |
|
指定代码块用于捕捉前面的 TRY 块引发的其他额外的异常类型。 |
|
关闭一 CATCH 或 AND_CATCH 的代码块。 |
|
关闭最后CATCH_ALL 代码块。 |
|
引发特定的异常。 |
|
抛出当前处理的异常给下一个外部处理程序。 |
异常抛出函数
抛出存档异常。 |
|
抛出文件异常。 |
|
抛出内存异常。 |
|
抛出不受支持异常 |
|
抛出窗口查找不到资源的异常。 |
|
在用户启动程序操作中抛出异常。 |
MFC 专门为 OLE 异常提供两个异常抛出函数:
OLE 异常函数
在 OLE 自动化的函数内抛出异常。 |
|
抛出一个OLE异常。 |
为了支持数据库异常,数据库类提供两个异常类、CDBException 和 CDaoException全局函数支持异常类型:
DAO 异常函数
从自己的代码中抛出CDao异常 |
|
从自己的代码中抛出CDBE异常 |
MFC 提供下列终止函数:
终止函数
当发生错误时调用终止应用程序。 |