学习笔记之深入浅出MFC 第8章 C++重要性质---异常处理(Exception Handing)
来源:互联网 发布:数码宝贝3网络进化 编辑:程序博客网 时间:2024/05/16 07:09
异常情况(Exception)是一个颇为新鲜的C++语言特性,可以帮助你管理执行期的错误,特别是那些发生在多层嵌套函数调用中的错误。现在C++编译器必须支持异常处理情况。
C++的exception可以从多层嵌套的例程调用中直接以一条快捷方式撤回到异常情况处理例程(exception handler),这种“错误管理方式”远比结构化程序中经过层层的例程传回一系列的错误状态来得好。事实上,exception handling是MFC和OWL两个application frameworks的防弹中心。
C++导入了三个新的exception保留字:
1、try。之后跟随一段以{ }圈出来的程序代码,exception可能在其中发生。
2、catch。之后跟随一段以{ }圈出来的程序代码,那是exception处理例程所在。catch应该紧跟在try之后。
3、throw。这是一个指令,用来产生(丢出)一个exception。
下面是个实例:
try{
//try block.
}
catch(char *p) {
printf("Caught a char* exception, value %s\n", p);
}
catch(double d) {
printf("Caught a numeric exception, value %g\n", d);
}
catch(. . .) { //catch anything
printf("Caught an unknown exception\n");
}
MFC早就支持exception,而且编译器本身又支持完整的C++exception,所以MFC因此有了两个exception版本:你可以使用语言本身提供的语句,也可以沿用MFC古老的方法(以宏形式出现)。
MFC的exception机制是以宏和exception types为基础的。这类宏类似C++的exception保留字,操作也很像。MFC以下列宏仿真C++ exception handling:
TRY
CATCH(type,object)
AND_CATCH(type,object)
END CATCH
CATCH_ALL(object)
AND CATCH ALL(object)
END_CATCH_ALL
END TRY
THROW()
THROW LAST()
MFC所使用的语法与日渐浮现的标准稍微不同,不过其间差异微不足道。为了以MFC捕捉exceptions,你应该建立一个TRY区块,下面接着CATCH区块:
TRY{
//try block
}
CATCH (CMemoryException , e) {
printf ( "Caught a memory exception.\n");
}
AND CATCH ALL (e) {
printf ("Caught an exception.\n");
}
END_CATCH_ALL
感觉关于异常处理有点抽象,主要是没有实例帮助理解,实在不好意思,等我碰到程序中的例子了再回来补充实例。
- 学习笔记之深入浅出MFC 第8章 C++重要性质---异常处理(Exception Handing)
- 学习笔记之深入浅出MFC 第8章 C++重要性质-----类封装
- 学习笔记之深入浅出MFC 第8章 C++重要性质---Template
- 学习笔记之深入浅出MFC 第8章 C++重要性质----基类与派生类:谈继承(Inheritance)
- 学习笔记之深入浅出MFC 第8章 C++重要性质----虚拟函数与多态(Polymorphism)
- 学习笔记之深入浅出MFC 第8章 C++重要性质--- 执行期类型信息(RTTI)
- 学习笔记之深入浅出MFC 第8章 C++重要性质---构造函数与析构函数
- 学习笔记之深入浅出MFC 第8章 C++重要特性----静态变量(static)
- 深入浅出MFC学习笔记:(第一章:win32基本概念,第二章:C++的重要性质)
- 深入浅出MFC学习笔记:(第一章:win32基本概念,第二章:C++的重要性质)
- 2.C++的重要性质(深入浅出MFC之读书笔记)
- 学习笔记之深入浅出MFC 第8章 C++重要特性---类与对象大解剖(虚拟函数的实现方式)
- 学习笔记之深入浅出MFC 第7章 进程与线程(Process and Thread)
- 学习笔记之深入浅出MFC 第9章 仿真MFC之二
- MFC学习笔记2--C++的重要性质
- 学习笔记之深入浅出MFC 第9章 仿真MFC 之一
- 学习笔记之深入浅出MFC 第3讲 消息循环
- 深入浅出MFC学习笔记(第8章:Document----View深入探讨)
- ## used
- pinter used
- 关于几种常用的脱壳方法总结
- 学习 Sqlite 的 好网站
- 对iOS图片保护的理解
- 学习笔记之深入浅出MFC 第8章 C++重要性质---异常处理(Exception Handing)
- listview 如何去除ListView中Header、Footer View中的分割线
- 编译Boost 详细步骤
- MySQL分库分表的技巧
- 274. H-Index
- wildfly10 append postgresql driver & datasource
- count2array_count_values .php
- Java 构造器与多态
- array used and char`s array and string`s array