C++从入门到精通 系列 第20章.ppt

C++从入门到精通 系列 第20章.ppt

ID:48906226

大小:119.50 KB

页数:33页

时间:2020-02-01

C++从入门到精通 系列 第20章.ppt_第1页
C++从入门到精通 系列 第20章.ppt_第2页
C++从入门到精通 系列 第20章.ppt_第3页
C++从入门到精通 系列 第20章.ppt_第4页
C++从入门到精通 系列 第20章.ppt_第5页
资源描述:

《C++从入门到精通 系列 第20章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第20章错误终结者——异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——

2、异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——异常处理异常的类型异常处理的基本思想异常处理多重异常的捕获构造函数异常处理调试器范例应用第20章错误终结者——异常处理现在我们已经掌握了程序的编写,但是这些程序还比较脆弱,抵挡没有意料到的问题该怎么办呢?是束手无策放任应用程序崩溃呢,是在遇到意外时让程序安全退出呢,还是选择更好的解决方法呢?在这一章,我们将详细讲述如何合理有效的处理这些问题的方法。2

3、0.1异常的类型20.1.1什么是异常20.1.2异常的分类20.1.1什么是异常(1)你要访问一个数组元素,在写下标时,一时疏忽,下标超出了数组的上界或者小于下界,在编译该程序时并没有报错,但是程序执行时这个错误就会显示出来,这就是异常,下图是弹出的应用程序错误对话框。20.1.1什么是异常(2)你要为一个数组初始化时分配内存空间,但是由于某些原因导致操作失败,比如你申请的存储空间过大,从而导致内存无法正常分配,这时程序也会报错,这也是异常。20.1.1什么是异常(3)你要访问某一路径的文件,但是该文件处于锁定状态(另外的程序也正在访问它),这时你也无法进行操作,

4、这也是异常。20.1.2异常的分类异常的基本概念是比较简单的,比如在程序中资源分配时发生,如存储分配或者是文件锁定,或者访问数组元素时越出了上下限的限制等等这些。从异常发生的时刻我们可以简单的把异常分出以下两种情况。语法错误运行时发生错误20.2异常处理的基本思想现在如果我们如果遇到了异常情况,我们会选择怎么处理它呢?可能会采取立即终止程序运行的方法;可能把异常返回给它的上一层函数;还可能是调用预先准备好的错误处理函数,让它决定是停止运行还是继续。20.2异常处理的基本思想满足下面这几点。把可能出现异常的代码和异常处理代码隔离开,结构更清晰。把内层错误的处理直接上传

5、到指定的外层来处理,使处理流程快速简洁。一般我们的处理方法是通过一层层返回错误指令,逐层上传到指定层,当层数过多时将需要非常多的判断,代码复杂,考虑周全就更加困难。在出现异常时,能够获取异常的信息并指出,以友好的方式传递给用户。这样做不仅可以使程序更加安全、健壮,而且一旦程序出现了问题我们也更容易查到原因,修改时做到有的放矢。20.3异常处理20.3.1异常处理语句块20.3.2使用try——catch处理异常20.3.1异常处理语句块C++提供了这样的三个语句块try、catch和throw,他们提供对异常进行处理功能。该异常处理的优点在错误出现的地方产生响应,可

6、以按一定顺序编写代码集中处理异常,也可以在发生错误的地方零星布点处理异常,然后一层一层地向上抛出异常。20.3.1异常处理语句块try语句块,用来框定异常。在程序中,要处理异常,我们需要先框定可能产生异常的语句块,若不框定,则就等于没有发现异常的存在。catch语句块,定义异常处理。将出现异常后的处理语句放在catch块中,以便当异常被抛出后,进行类型匹配,捕获异常并处理。throw语句块,抛出异常。在可能产生异常的语句中进行错误检查,如果有错误,就抛出异常。前两个步骤是在一个函数中定义的,而抛出异常则可以跨函数调用。20.3.1异常处理语句块1.try语句块用来包

7、围可能出现问题的代码区域。格式如下:try{内嵌throw语句的语句;}20.3.1异常处理语句块2.throw语句块用来抛出异常。格式如下:(1)带表达式形式throwtypeexception;(2)不带表达式形式throw;20.3.1异常处理语句块3.catch语句块用来处理try块中抛出的异常。catch(type[exception]){匹配throw抛出的exception的语句块;}catch(...){匹配throw抛出的任意类型的语句块;}20.3.2使用try——catch处理异常使用try——catch处理异常的格式为:try{throw

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。