字体
第(1/5)页
关灯
   存书签 书架管理 返回目录
    盘硬件,因此会产生各种各样的异常。无论是文件的

    打开、读写、定位还是关闭cāo作都会产生异常。异常通常是由调用的函数抛出,在TRY/CATCH

    块中捕获,此外CFile::Open()函数还可以用参数的形式获得异常的指针。

    MFC 中文件的异常类是CFileException。CFileException 对象可以获得文件cāo作失败的原

    因代码。该对象在CFile 成员函数中被创建和产生,也可以在CFile 派生类的成员函数中创建

    和产生。程序用CATCH 表达式获取这一对象。CFileException 类包含可移植的原因代码和cāo

    作系统制定的错误值的公共成员变量。一般情况下使用可移植的原因代码以实现平台的无关

    xìng。

    下面对CFileException 相关cāo作进行介绍,包括如何创建、抛出和获得异常。

    1.创建并抛出异常

    MFC 不允许手动创建CFileException 对象,而采用AfxThrowFileException()函数创建并

    抛出文件异常。AfxThrowFileException()函数的原型为:

    void AfxThrowFileException(

    int cause,

    LONG lOsError = -1,

    LPCTSTR lpszFileNcom = NULL

    );

    ? 参数cause:指定异常的原因,是一个枚举类型,具体枚举值如表8-2 所示。

    ? 参数lOsError:指定一个跟cāo作系统相关的异常原因。注意该值需要程序自行提供,

    cāo作系统并不自动设置该值。

    ? 参数lpszFileNcom:指定出错的文件名。

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·196·

    表8-2 文件异常原因代码

    cause 取值 取值说明

    CFileException::none 没有错误发生

    CFileException::generic 一个没有特定意义的错误发生

    CFileException::fileNotFound 无法找到文件

    CFileExceptionLLbadPath 路径错误

    CFileException::tooManyOpenFiles 超出允许的打开文件的最大数目

    CFileException::accessDenied 文件无法访问

    CFileException::invalidFile 尝试使用一个无效的文件句柄

    CFileException::removeCurrentDir 当前工作目录无法被删除

    CFileException::directoryFull 没有更多的目录项

    CFileException::badSeek 移动文件指针错误

    CFileException::hardIO 硬件错误

    CFileException::sharingViolation 共享错误

    CFileException::l
上一章 目录 下一页