zoukankan      html  css  js  c++  java
  • MFCCFileException类学习笔记

    CFileException类的声明文件保存在头文件afx.h中。
    当我们在使用CFile及其派生类的对象的时候,如果产生异常则会创建和抛出CFileException对象。采用TRY…CATCH…END_CATCH。
    CFileException类的成员变量:
    m_cause:错误代码
    CFileException::none
    没有错误发生
    CFileException::generic
    一个未被指明的错误发生
    CFileException::fileNotFind
    该文件不能被定位
    CFileException::badPath
    整个或者部分路径是无效的
    CFileException::tooManyOpenFiles
    打开文件的数目太多
    CFileException::accessDenied
    文件不能被访问
    CFileException::invalidFile
    试图使用无效文件的句柄
     
    CFileException::removeCurrentDir
    当前工作路径不能被移除
    CFileException::directoryFull
    不再有目录项
    CFileException::badSeek
    试图设置文件指针错误
    CFileException::hardIO
    硬件错误
    CFileException::sharingViolation
    不能调用share.exe文件,或者共享区域被锁
    CFileException::lockViolation
    试图锁定一个已经被锁的区域
    CFileException::diskFull
    磁盘空间已满
    CFileException::endOfFile
    访问到文件尾部
     
    m_IOsEror:操作系统异常错误代码,LONG型
     
    m_strFileName:产生异常情况的文件名称,CString型
     
     
    CFileException类的成员变量:
    CFileException(
    int cause = CFileException::none, 异常原因代码
    LONG IOsError = -1, 操作系统提示的错误
    LPCTSTR lpszArchiveName = NULL 产生错误的CFile对象
    );
    除了使用全局函数AfxThrowFileException,不能直接创建一个异常文件对象。
    注意:IOsError只能应用在CFile和CStdioFile类产生的对象中。CMemFile对象不能操作该错误代码。
     
    static int PASCAL ErrnoToException(int nErrno);
    将运行时的错误值转换为一个CFileException被枚举定义的错误值
    nErrno:指的是头文件ERRNO.H中定义的运行时错误值
    该函数返回与运行时错误相对应的枚举值
     
    static int PASCAL OsErrorToException(LONG IOsError);
    将操作系统产生的错误值转换为一个CFileException被枚举定义的错误值
    IOsError:指的是操作系统指定的错误值
    该函数返回与操作系统错误相对应的枚举值,如果该错误没有对应的CFileException定义的错误值,则会返回CFileException::generic
    static void PASCAL ThrowErrno(
    int nErrno,
    LPCTSTR lpszFileName = NULL
    );
    构造一个与ERRNO.H头文件声明的错误值一致的CFileException对象,并抛出该异常。
     
    static void PASCAL ThrowOsError(
    LONG IOsError,
    LPCTSTR lpszFileName = NULL
    );
    抛出一个与操作系统错误一致的CFileException对象,如果IOsError错误代码不可知,则抛出异常代码CFileException::generic
  • 相关阅读:
    [a0004] <创作> 随笔视图索引
    [a0003] <创作> 全局视图索引
    git提交时忽略指定文件
    解决:gradle 前言中不允许有内容
    【LINQ标准查询操作符总结】之聚合操符
    RxJS 中的创建操作符
    项目管理(1) 什么是项目?
    数据库表数据统计及数据表的数据大小统计SQL
    C# 中一些类关系的判定方法
    Windows Azure NotificationHub+Firebase Cloud Message 实现消息推动(付源码)
  • 原文地址:https://www.cnblogs.com/yuqilihualuo/p/3002013.html
Copyright © 2011-2022 走看看