文件的异常处理 1.CFileException 2.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 逻辑错误:使用一个超出有效范围的值