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

转载于:https://www.cnblogs.com/yuqilihualuo/archive/2013/04/06/3002013.html

MFC-CFileException类学习笔记相关推荐

  1. Unity API常用方法和类学习笔记2

    Unity API常用方法和类学习笔记2 ------Mathf & Input & Vector & Random 类Mathf 一.静态变量 print(Mathf.Deg ...

  2. Unity API常用方法和类学习笔记1

    Unity API常用方法和类学习笔记1 ------主要构架(Unity-Engine.GameObject.Component) 事件 一.事件执行顺序 二.测试代码 using System.C ...

  3. QIODevice 类学习笔记

    QIODevice 类学习笔记 Isaaccwoo 2015年12月10日 一.       简介 QIODevice用于对输入输出设备进行管理.输入设备有两种类型,一种是随机访问设备(Random- ...

  4. QFrame类学习笔记

    QFrame类学习笔记 参考:https://wenku.baidu.com/view/759c1af565ce050877321322.html https://doc.qt.io/qt-5/qfr ...

  5. MFC Windows程序设计学习笔记--文件和串行化

    文件IO主要为了 支持文档的存储和加载. 多数MFC程序用CArchive对象实现磁盘文档的存储和加载. 1.CFile: m_hFile 保存着与CFile相关联的文件的句柄. m_strFileN ...

  6. MFC进度条学习笔记

    最近工作中有使用到进度条的知识,就来学习学习这个控件~~ 先来看看想要达到的效果: 好的,现在开始正题. 我们这里的进度条,在程序里面叫做CProgressCtrl,它是继承自CWnd类的基础控件类, ...

  7. 《吕鑫:VC++6.0就业培训宝典之MFC视频教程》学习笔记 -- 第二章 MFC原理介绍

    第二章 MFC原理介绍 2.1 第一个Win32软件 2.2 Win32对话框程序开发 2.3 程序资源管理和Windows数据类型 2.4 Win32环境下的多对话框管理 2.5 初步学习MFC软件 ...

  8. 《吕鑫:VC++6.0就业培训宝典之MFC视频教程》学习笔记 -- 第一章 Visual C++ 安装介绍...

    综述:这篇博文会记录<吕鑫:VC++6.0就业培训宝典之MFC视频教程>的学习进度 转载于:https://www.cnblogs.com/SunnyD/p/7694746.html

  9. 转载:C++ list 类学习笔记

    声明:本文转自http://blog.csdn.net/whz_zb/article/details/6831817 双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面 ...

  10. C# Console类学习笔记

    Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入. Console.WriteLine 表示向控制台写入字符串后换行. Console.Read 表示从控制 ...

最新文章

  1. TVM优化GPU机器翻译
  2. 求链式线性表的倒数第K项(堆栈解法)
  3. LEGv8指令集中分支和跳转的地址范围
  4. Xshell登录Linux服务器 提示WARNING! The remote SSH server rejected X11 forwarding request 及 提示符显示-bash-4.2#
  5. Android 系统(182)---Android.mk的用法和基础 amp;amp; m、mm、mmm编译命令
  6. 线程相关函数(1)-pthread_create(), pthread_join(), pthread_exit(), pthread_cancel() 创建取消线程...
  7. 函数adapthisteq
  8. Linux转到Server服务,Linux下安装telnet-server服务
  9. On the Robustness of Semantic Segmentation Models to Adversarial Attacks论文解读
  10. TEM014 - 新版阿里云网站界面高保真原型模板-AxureUX
  11. redis集群原理(简版)
  12. Linux基础-磁盘阵列RAID
  13. Excel从入门到精通--基础篇
  14. 采用commons-emai发送电子邮件
  15. c jave等语言作用,编程语言的前世今生,看 Java、C、C++ 等语言的演变
  16. Clean Architecture 读书笔记
  17. 中国药典 android,中国药典在线查询_中国药典v2.05.03安卓版
  18. ddl和dml(DDL和DML包含哪些动词)
  19. 限制电脑使用指定的软件
  20. 【python-opencv】灰度图和彩色图的互相转换

热门文章

  1. Apache Solr 全文检索概述 与 Win10 下安装 Solr
  2. Java 队列 Queue 使用说明
  3. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_3_Stream流中的常用方法_filter...
  4. 《DSP using MATLAB》Problem 7.25
  5. 学习用MaxScipt批处理Max文件
  6. C11简洁之道:函数绑定
  7. 【转】一个SQL查询出每门课程的成绩都大于80的学生姓名
  8. div居中和table居中,jQuery获取下拉列表值
  9. 我需要一个足够大的桌子
  10. 在Qsys中创建用户自定义IP