CFileException文件的异常处理

来源:互联网 发布:网络技术支持与维护 编辑:程序博客网 时间:2024/04/30 08:20

文件的异常处理 1.CFileException2.CExceptFile

CFileException 异常类的一种,用于检测文件操作中可能出现的错误。CFileException 异常类的一种,用于检测文件操作中可能出现的错误。

CFileException类的声明文件保存在头文件afx.h中。

当我们在使用CFile及其派生类的对象的时候,如果产生异常则会创建和抛出CFileException对象。采用TRY…CATCH…END_CATCH。

一个CFileException对象代表了与文件相关的异常。CFileException类包括有可移植的原因代码和操作系统指定错误值等公共数据成员。此类也提供产生文件异常的静态成员函数,返回操作系统和C运行中的错误原因代码。

CFileException对象在CFile成员函数中被创建和产生,也可在派生类成员函数中创建或产生。可在CATCH表达式范围内访问这些对象。因为可移植,可以仅用出错代码获取异常的原因。要了解关于异常的更多信息,可参阅联机文档“Visual C++程序员指南”中的“异常”。

CFileException类的成员

数据成员 m_cause 包含异常原因相对应的可移植代码

m_IosError 包含相关操作系统错误代码

m_strFileName 包含异常的文件名

构造函数 CFileException 构造一个CFileException对象

代码转换 OsErrorToException 返回与操作系统错误值相对应的出错原因代码

ErrnoToException 返回与运行错误值相对应的出错原因代码

帮助函数 ThrowOsError 返回一个基于操作系统错误值相对应的出错原因代码

ThrowErrno 产生一个基于运行错误值的文件异常

CFileException::CFileException

CFileException(int cause = CFileException::none,LONG lOsError = -1);

参数: cause 一个枚举类型变量,标明异常原因。可参阅CFileException::m_cause,了解可能值的列表。

lOsError 可能的话,是异常的操作系统指定原因。lOsError参数提供比cause更多的信息。

说明:

构造一个CFileException对象,存储出错代码和对象中的操作系统代码。

不要直接使用此构造函数,而应调用全局函数AfxThrowFileException。

注意:

变量lOsError仅可应用于CFile和CStdioFile对象,CMemFile类不处理此错误代码

CExceptFile

<stdexcept>头文件里面几个类的作用exception                                 最常见的问题runtime_error                        运行时错误:仅在运行时才能检测到得错误range_error                           运行时错误:生成的结果超出了有意义的值域范围overflow_error                       运行时错误:计算上溢underflow_error                    运行时错误 :计算下溢logic_error                            逻辑错误:可在运行前检测到得问题domain_error                        逻辑错误:参数的结果值不存在invalid_argument                  逻辑错误:不合适的参数length_error                          逻辑错误:试图生成 一个超出改类型最大长度的对象out_of_range                        逻辑错误:使用一个超出有效范围的值