大家好
欢迎继续学习C++语言程序设计
到现在为止呢
我们这一章
异常处理就介绍完了
这一章呢
只将异常处理技术
给大家做了一个非常简要地介绍
为什么只做一个简要地介绍呢
因为这种容错处理的机制呢
是要对于大型程序
才要起作用的
大家刚刚开始写一点
小规模的程序
刚刚写一点入门的作业
这个时候对于容错处理的重要性
还不能够完全理解
所以呢
我们了解C++中
有一种容错的机制
叫做异常处理就可以了
将来当你要写大规模程序的时候
当你需要
比较好的容错性能的时候
你还需要进一步地学习
更多的异常处理技术
在这一章呢
首先我们给大家介绍了
C++的异常处理的基本概念
也就是说让大家了解到
程序中有些问题
是不能够避免的
比如说
有可能在运行过程中
环境出问题
有可能我们让用户
输入三角形的三个边长
但是它输入的数据不合法
那在这样的情况下
我们的程序应该能够
尽量地从错误的地方恢复过来
继续执行
或者至少给用户一个提示信息
告诉他程序为什么终止
那为了实现这样的容错机制呢
C++提供了一种
叫做异常处理的机制
有了异常处理
我们就可以把发生错误
发生异常的模块
和专门处理异常的模块分开
当异常发生的时候
探测到异常的时候
可以选择就地处理
也可以不处理
通常就不就地处理了
因为所有的异常
如果都就地处理的话
会影响程序的主要逻辑
而且可读性也不好
而且有些模块呢
由于它是最基层的
最底层的模块
它是没有办法知道
该如何处理这个异常的
所以可以选择将异常
抛出给它的调用者
由调用者选择捕获处理异常
或者继续抛出
那么如果一个函数
它确定是为抛出某种异常的
有可能抛出某种异常的
那最好在函数声明的时候
就声明一下
这个函数中有可能
抛出什么什么类型的异常
这样的话
调用者就可以为
这些专门的异常处理做好准备
程序的可读性也比较好
其实异常处理机制
它最精采的地方
还不仅仅在于异常地抛出
和捕获
而在于它异常处理过程中
构造和析构的配合
也就是说在try块中
如果还没来得及析构的
这些已经构造的对象
它当你进行异常处理的时候
是不会泄漏内存
泄漏资源的
这些对象
会在抛出异常
异常被捕获之后的第一时间
自动地析构
所以它的资源会释放的
为了异常处理呢
C++标准库里面
已经跟我们预先定义好了
很多异常类
我们在大多数情况下
做简单程序的时候
直接使用这些异常类型
就可以了
当然
如果我们今后要写复杂程序的话
也可以继承这些异常类型
去定义自己的异常类
这个呢
就是这一章的内容
到此为止呢
我们这门课的内容
就都学完了
希望大家学完这门课以后呢
能够编写
一些中等规模的应用程序
能够对C++的基本语法
基本概念
有一个比较全面地了解了
当然呢
要在程序设计方面
修炼出很深的造诣
不是一门课可以解决的问题
希望大家
因为这门课对C++程序设计
产生了浓厚的兴趣
能够以后自己钻研和学习下去
能够在自己的学习工作中
不断地实践 不断地提高
并且欢迎你
随时回到这门课中来 继续复习