释义 |
异常处理 在程序执行的过程中,可能会发生一些称为“异常”的非正常状态或者错误。这些异常可能包括内存耗尽,资源分配错误或是找不到文件等。 微软基础类库中采用的异常处理模式和ANSI标准化委员会建议的C++异常处理方式很接近。异常处理函数必须在调用可能发生不正常状态的函数之前建立。如果这个函数遇到了不正常的状态,它就抛出一个异常,并且将控制权转移给异常处理函数。 微软基础类库中包含的某些宏可以建立异常处理函数。另有一些全局函数有助于抛出异常并在必要时终止程序。这些宏和全局函数可以分为以下几类:· | 异常宏,生成异常处理函数的结构。 | · | 异常抛出函数,生成特定类型的异常。 | · | 终止函数,使程序终止。 | 如果需要示例和更多的细节,请参阅《Visual C++程序员指南》中的“异常”部分。
异常宏TRY | 声明一段代码为异常处理 | CATCH | 声明一段代码,用于捕捉前面的TRY块产生的一个异常 | CATCH_ALL | 声明一段代码,用于捕捉前面的TRY块产生的所有异常 | AND_CATCH | 声明一段代码,用于捕捉前面的TRY块产生的其他类型的异常 | AND_CATCH_ALL | 声明一段代码,用于捕捉前面的TRY块抛出的所有其他类型的异常 | END_CATCH | 结束上一个CATCH或AND_CATCH块 | END_CATCH_ALL | 结束上一个CATCH_ALL代码块 | THROW | 抛出一个指定的异常 | THROW_LAST | 抛出当前处理的异常,交给后面的处理函数 |
异常抛出函数AfxThrowArchiveException | 抛出一个档案异常 | AfxThrowFileException | 抛出一个文件异常 | AfxThrowMemoryException | 抛出一个内存异常 | AfxThrowNotSupportedException | 抛出一个不支持的异常 | AfxThrowResourceException | 抛出一个Windows的未找到资源异常 | AfxThrowUserException | 在用户初始化的程序动作中抛出一个异常 |
MFC特别为OLE异常提供了两个异常抛出函数。
OLE异常函数AfxThrowOleDispatchException | 在OLE自动化函数内抛出一个异常 | AfxThrowOleException | 抛出一个OLE异常 |
为了支持数据库异常,数据库类提供了两个异常类,CDBException和CDaoException,还有一些全局函数用于支持异常类型:
DAO异常函数AfxThrowDAOException | 从你自己的代码中抛出一个CDaoException异常 | AfxThrowDBException | 从你自己的代码中抛出一个CDBException异常 |
MFC提供了下列终止函数: 终止函数AfxAbort | 当发生了致命错误时用于结束应用程序 |
请参阅:CException |