当前课程知识点:C++语言程序设计进阶 > 第十二章 异常处理 > 小结 > 第12章小结
主要内容
异常处理的基本思想、C++异常处理的实现、异常处理中的构造与析构
达到的目标
简单了解C++的异常处理机制
大家好
欢迎继续学习C++语言程序设计
到现在为止呢
我们这一章
异常处理就介绍完了
这一章呢
只将异常处理技术
给大家做了一个非常简要地介绍
为什么只做一个简要地介绍呢
因为这种容错处理的机制呢
是要对于大型程序
才要起作用的
大家刚刚开始写一点
小规模的程序
刚刚写一点入门的作业
这个时候对于容错处理的重要性
还不能够完全理解
所以呢
我们了解C++中
有一种容错的机制
叫做异常处理就可以了
将来当你要写大规模程序的时候
当你需要
比较好的容错性能的时候
你还需要进一步地学习
更多的异常处理技术
在这一章呢
首先我们给大家介绍了
C++的异常处理的基本概念
也就是说让大家了解到
程序中有些问题
是不能够避免的
比如说
有可能在运行过程中
环境出问题
有可能我们让用户
输入三角形的三个边长
但是它输入的数据不合法
那在这样的情况下
我们的程序应该能够
尽量地从错误的地方恢复过来
继续执行
或者至少给用户一个提示信息
告诉他程序为什么终止
那为了实现这样的容错机制呢
C++提供了一种
叫做异常处理的机制
有了异常处理
我们就可以把发生错误
发生异常的模块
和专门处理异常的模块分开
当异常发生的时候
探测到异常的时候
可以选择就地处理
也可以不处理
通常就不就地处理了
因为所有的异常
如果都就地处理的话
会影响程序的主要逻辑
而且可读性也不好
而且有些模块呢
由于它是最基层的
最底层的模块
它是没有办法知道
该如何处理这个异常的
所以可以选择将异常
抛出给它的调用者
由调用者选择捕获处理异常
或者继续抛出
那么如果一个函数
它确定是为抛出某种异常的
有可能抛出某种异常的
那最好在函数声明的时候
就声明一下
这个函数中有可能
抛出什么什么类型的异常
这样的话
调用者就可以为
这些专门的异常处理做好准备
程序的可读性也比较好
其实异常处理机制
它最精采的地方
还不仅仅在于异常地抛出
和捕获
而在于它异常处理过程中
构造和析构的配合
也就是说在try块中
如果还没来得及析构的
这些已经构造的对象
它当你进行异常处理的时候
是不会泄漏内存
泄漏资源的
这些对象
会在抛出异常
异常被捕获之后的第一时间
自动地析构
所以它的资源会释放的
为了异常处理呢
C++标准库里面
已经跟我们预先定义好了
很多异常类
我们在大多数情况下
做简单程序的时候
直接使用这些异常类型
就可以了
当然
如果我们今后要写复杂程序的话
也可以继承这些异常类型
去定义自己的异常类
这个呢
就是这一章的内容
到此为止呢
我们这门课的内容
就都学完了
希望大家学完这门课以后呢
能够编写
一些中等规模的应用程序
能够对C++的基本语法
基本概念
有一个比较全面地了解了
当然呢
要在程序设计方面
修炼出很深的造诣
不是一门课可以解决的问题
希望大家
因为这门课对C++程序设计
产生了浓厚的兴趣
能够以后自己钻研和学习下去
能够在自己的学习工作中
不断地实践 不断地提高
并且欢迎你
随时回到这门课中来 继续复习
-导学
--导学
-继承的基本概念和语法
-第七章 继承与派生--继承的基本概念和语法习题
-继承方式
-第七章 继承与派生--继承方式
-基类与派生类类型转换
-第七章 继承与派生--基类与派生类类型转换
-派生类的构造和析构
--派生类的构造函数
--派生类的析构函数
--第七章 继承与派生--派生类的构造和析构
-派生类成员的标识与访问
--虚基类
-第七章 继承与派生--派生类成员的标识与访问
-小结
--小结
-综合实例
--第七章综合实例
-实验七
--实验七
-导学
--导学
-第八章 多态性--导学
-运算符重载
--运算符重载的规则
-第八章 多态性--运算符重载
-虚函数
--虚函数
--虚析构函数
--虚表与动态绑定
-第八章 多态性--虚函数
-抽象类
--抽象类
--第八章 多态性--抽象类
-override与final
-第八章 多态性--override与final
-小结
--第八章小结
-综合实例
--第八章综合实例
-实验八
--实验八
- 第八章讲义
-导学
--导学
-模板
--函数模板
--类模板
-第九章 模板与群体数据--模板
-线性群体
--线性群体的概念
-第九章 模板与群体数据--线性群体
-数组
--数组类模板
-链表
--链表类模板
-第九章 模板与群体数据--链表
-栈
--栈类模板
--栈类模板课后习题
--例9-9 栈的应用课后习题
-队列
--队列类模板
-第九章 模板与群体数据--队列
-排序
--排序概述
--插入排序
--选择排序
--交换排序
-第九章 模板与群体数据--排序
-查找
--查找
--查找课后习题
-小结
--小结
-综合实例
--综合实例
-实验九
--实验九
- 第九章讲义
-导学
--导学
-泛型程序设计及STL的结构
--STL简介
-第十章 泛型程序设计与C++标准模板库--泛型程序设计及STL的结构
-迭代器
--迭代器
-第十章 泛型程序设计与C++标准模板库--迭代器
-容器的基本功能与分类
-第十章 泛型程序设计与C++标准模板库--容器的基本功能与分类
-顺序容器
--顺序容器的特征
--第十章 泛型程序设计与C++标准模板库--顺序容器
-关联容器
--集合
--映射
-第十章 泛型程序设计与C++标准模板库--关联容器
-函数对象
--函数对象
--函数适配器
-算法
--算法
-小结
--第十章小结
-综合实例
--综合实例
-实验十
--实验十
- 第十章讲义
-导学
--导学
-I/O流的概念及流类库结构
-第十一章 流类库与输入/输出--I/O流的概念及流类库结构
-输出流
--输出流概述
--向文本文件输出
--向二进制文件输出
--向字符串输出
-第十一章 流类库与输入/输出--输出流
-输入流
--输入流概述
--输入流应用举例
--从字符串输入
-第十一章 流类库与输入/输出--输入流
-输入/输出流
--输入/输出流
-第十一章 流类库与输入/输出--输入/输出流
-小结
--小结
-综合实例
--综合实例
-实验十一
--实验十一
- 第十一章讲义
-导学
--第12章导学
-异常处理的思想与程序实现
-第十二章 异常处理--异常处理的思想与程序实现
-异常处理中的构造与析构
-第十二章 异常处理--异常处理中的构造与析构
-标准程序库异常处理
-第十二章 异常处理--标准程序库异常处理
-小结
--第12章小结
-综合实例
--综合实例
-实验十二
--实验十二
- 第十二章讲义