CFileException类学习

 
CFileException 类学习笔记
2007-7-18
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
 
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值