异常处理

在程序执行时,称为 “异常”许多的异常状态和错误会发生此错误。其中可能包括内存不足、资源分配错误和未找到该文件。

Microsoft 基础类库使用基本上是在 C++ 的 ANSI 标准委员会建议的控件后进行建模的异常处理模式。异常处理程序必须在调用可能遇到一个异常情况的函数之前设置。如果该函数时遇到异常状态,会引发异常,并且控制传递到异常处理程序。

多个宏随 Microsoft 基础类库将异常处理程序。许多其他全局函数帮助引发一个异常和停止程序,如果需要,。这些宏和全局函数可分为以下几类:

  • 异常宏,结构则异常处理程序。

  • 异常引发的函数,生成特定类型的异常。

  • 终止函数,将导致程序停止。

有关示例和更多详细信息,请参见中的文章 例外

异常宏

TRY

指定代码块异常处理。

catch

指定代码块捕获的异常从前面的 TRY 块。

CATCH_ALL

指定代码块捕获的所有异常从前面的 TRY 块。

AND_CATCH

指定代码块捕获的其他异常类型的上述 TRY 块。

AND_CATCH_ALL

指定代码块捕获的前面的 TRY 引发的其他额外的异常类型块。

END_CATCH

关闭最后 CATCHAND_CATCH 代码块。

END_CATCH_ALL

关闭最后 CATCH_ALL 代码块。

引发

引发指定的异常。

THROW_LAST

引发当前正在处理的异常到下外部处理程序。

异常引发的函数

AfxThrowArchiveException

存档引发异常。

AfxThrowFileException

文件引发异常。

AfxThrowMemoryException

引发内存异常。

AfxThrowNotSupportedException

引发不支持的异常。

AfxThrowResourceException

引发 windows 资源未找到了异常。

AfxThrowUserException

引发在用户启动的程序事件的异常。

MFC 的 OLE 异常专门提供两个异常引发的功能:

OLE 异常功能

AfxThrowOleDispatchException

引发一个 OLE 自动化功能中的异常。

AfxThrowOleException

引发 OLE 异常。

为了支持数据库异常,数据库类提供两种异常类、 CDBExceptionCDaoException和全局函数支持异常类型:

DAO 异常功能

AfxThrowDAOException

引发从代码中 CDaoException

AfxThrowDBException

引发从代码中 CDBException

MFC 提供以下停止功能:

终止函数

AfxAbort

调用停止应用程序,当致命错误。

请参见

参考

CException 类

概念

MFC宏和Globals