第20章 错误终结者——异常处理 C++教学用PPT 教学课件.ppt

第20章 错误终结者——异常处理 C++教学用PPT 教学课件.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第20章错误终结者——异常处理C教学用PPT教学课件

《ASP.NET 3.5网站开发从入门到精通》 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 第20章 错误终结者——异常处理 现在我们已经掌握了程序的编写,但是这些程序还比较脆弱,抵挡没有意料到的问题该怎么办呢?是束手无策放任应用程序崩溃呢,是在遇到意外时让程序安全退出呢,还是选择更好的解决方法呢? 在这一章,我们将详细讲述如何合理有效的处理这些问题的方法。 20.1 异常的类型 20.1.1 什么是异常 20.1.2 异常的分类 20.1.1 什么是异常 (1) 你要访问一个数组元素,在写下标时,一时疏忽,下标超出了数组的上界或者小于下界,在编译该程序时并没有报错,但是程序执行时这个错误就会显示出来,这就是异常,下图是弹出的应用程序错误对话框。 20.1.1 什么是异常 (2) 你要为一个数组初始化时分配内存空间,但是由于某些原因导致操作失败,比如你申请的存储空间过大,从而导致内存无法正常分配,这时程序也会报错,这也是异常。 20.1.1 什么是异常 (3) 你要访问某一路径的文件,但是该文件处于锁定状态(另外的程序也正在访问它),这时你也无法进行操作,这也是异常。 20.1.2 异常的分类 异常的基本概念是比较简单的,比如在程序中资源分配时发生,如存储分配或者是文件锁定,或者访问数组元素时越出了上下限的限制等等这些。从异常发生的时刻我们可以简单的把异常分出以下两种情况。 语法错误 运行时发生错误 20.2 异常处理的基本思想 现在如果我们如果遇到了异常情况,我们会选择怎么处理它呢?可能会采取立即终止程序运行的方法;可能把异常返回给它的上一层函数;还可能是调用预先准备好的错误处理函数,让它决定是停止运行还是继续。 20.2 异常处理的基本思想 满足下面这几点。 把可能出现异常的代码和异常处理代码隔离开,结构更清晰。 把内层错误的处理直接上传到指定的外层来处理,使处理流程快速简洁。一般我们的处理方法是通过一层层返回错误指令,逐层上传到指定层,当层数过多时将需要非常多的判断,代码复杂,考虑周全就更加困难。 在出现异常时,能够获取异常的信息并指出,以友好的方式传递给用户。这样做不仅可以使程序更加安全、健壮,而且一旦程序出现了问题我们也更容易查到原因,修改时做到有的放矢。 20.3 异常处理 20.3.1 异常处理语句块 20.3.2 使用try——catch处理异常 20.3.1 异常处理语句块 C++提供了这样的三个语句块try、catch和throw,他们提供对异常进行处理功能。该异常处理的优点在错误出现的地方产生响应,可以按一定顺序编写代码集中处理异常,也可以在发生错误的地方零星布点处理异常,然后一层一层地向上抛出异常。 20.3.1 异常处理语句块 try语句块,用来框定异常。在程序中,要处理异常,我们需要先框定可能产生异常的语句块,若不框定,则就等于没有发现异常的存在。 catch语句块,定义异常处理。将出现异常后的处理语句放在catch块中,以便当异常被抛出后,进行类型匹配,捕获异常并处理。 throw语句块,抛出异常。在可能产生异常的语句中进行错误检查,如果有错误,就抛出异常。 前两个步骤是在一个函数中定义的,而抛出异常则可以跨函数调用。 20.3.1 异常处理语句块 1. try语句块 用来包围可能出现问题的代码区域。格式如下: try { 内嵌throw语句的语句; } 20.3.1 异常处理语句块 2. throw语句块 用来抛出异常。格式如下: (1) 带表达式形式 throw type exception; (2) 不带表达式形式 throw; 20.3.1 异常处理语句块 3. catch语句块 用来处理try块中抛出的异常。 catch ( type [exception]) { 匹配throw 抛出的exception的语句块; } catch (...) { 匹配throw 抛出的任意类型的语句块; } 20.3.2 使用try——catch处理异常 使用try——catch处理异常的格式为: try { throw type1 [param1]; throw typen [paramn]; } catch (type1 [param1]) { 语句块1; } catch (typen [paramn]) { 语句块n; } catch (...) { 匹配throw 抛出的任意类型的语句块; } 其中type1 ,typen

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档