MFC-CFileException类学习笔记
当我们在使用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类学习笔记相关推荐
- Unity API常用方法和类学习笔记2
Unity API常用方法和类学习笔记2 ------Mathf & Input & Vector & Random 类Mathf 一.静态变量 print(Mathf.Deg ...
- Unity API常用方法和类学习笔记1
Unity API常用方法和类学习笔记1 ------主要构架(Unity-Engine.GameObject.Component) 事件 一.事件执行顺序 二.测试代码 using System.C ...
- QIODevice 类学习笔记
QIODevice 类学习笔记 Isaaccwoo 2015年12月10日 一. 简介 QIODevice用于对输入输出设备进行管理.输入设备有两种类型,一种是随机访问设备(Random- ...
- QFrame类学习笔记
QFrame类学习笔记 参考:https://wenku.baidu.com/view/759c1af565ce050877321322.html https://doc.qt.io/qt-5/qfr ...
- MFC Windows程序设计学习笔记--文件和串行化
文件IO主要为了 支持文档的存储和加载. 多数MFC程序用CArchive对象实现磁盘文档的存储和加载. 1.CFile: m_hFile 保存着与CFile相关联的文件的句柄. m_strFileN ...
- MFC进度条学习笔记
最近工作中有使用到进度条的知识,就来学习学习这个控件~~ 先来看看想要达到的效果: 好的,现在开始正题. 我们这里的进度条,在程序里面叫做CProgressCtrl,它是继承自CWnd类的基础控件类, ...
- 《吕鑫:VC++6.0就业培训宝典之MFC视频教程》学习笔记 -- 第二章 MFC原理介绍
第二章 MFC原理介绍 2.1 第一个Win32软件 2.2 Win32对话框程序开发 2.3 程序资源管理和Windows数据类型 2.4 Win32环境下的多对话框管理 2.5 初步学习MFC软件 ...
- 《吕鑫:VC++6.0就业培训宝典之MFC视频教程》学习笔记 -- 第一章 Visual C++ 安装介绍...
综述:这篇博文会记录<吕鑫:VC++6.0就业培训宝典之MFC视频教程>的学习进度 转载于:https://www.cnblogs.com/SunnyD/p/7694746.html
- 转载:C++ list 类学习笔记
声明:本文转自http://blog.csdn.net/whz_zb/article/details/6831817 双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面 ...
- C# Console类学习笔记
Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入. Console.WriteLine 表示向控制台写入字符串后换行. Console.Read 表示从控制 ...
最新文章
- TVM优化GPU机器翻译
- 求链式线性表的倒数第K项(堆栈解法)
- LEGv8指令集中分支和跳转的地址范围
- Xshell登录Linux服务器 提示WARNING! The remote SSH server rejected X11 forwarding request 及 提示符显示-bash-4.2#
- Android 系统(182)---Android.mk的用法和基础 amp;amp; m、mm、mmm编译命令
- 线程相关函数(1)-pthread_create(), pthread_join(), pthread_exit(), pthread_cancel() 创建取消线程...
- 函数adapthisteq
- Linux转到Server服务,Linux下安装telnet-server服务
- On the Robustness of Semantic Segmentation Models to Adversarial Attacks论文解读
- TEM014 - 新版阿里云网站界面高保真原型模板-AxureUX
- redis集群原理(简版)
- Linux基础-磁盘阵列RAID
- Excel从入门到精通--基础篇
- 采用commons-emai发送电子邮件
- c jave等语言作用,编程语言的前世今生,看 Java、C、C++ 等语言的演变
- Clean Architecture 读书笔记
- 中国药典 android,中国药典在线查询_中国药典v2.05.03安卓版
- ddl和dml(DDL和DML包含哪些动词)
- 限制电脑使用指定的软件
- 【python-opencv】灰度图和彩色图的互相转换
热门文章
- Apache Solr 全文检索概述 与 Win10 下安装 Solr
- Java 队列 Queue 使用说明
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_3_Stream流中的常用方法_filter...
- 《DSP using MATLAB》Problem 7.25
- 学习用MaxScipt批处理Max文件
- C11简洁之道:函数绑定
- 【转】一个SQL查询出每门课程的成绩都大于80的学生姓名
- div居中和table居中,jQuery获取下拉列表值
- 我需要一个足够大的桌子
- 在Qsys中创建用户自定义IP