第7章 调试、测试和异常处理.ppt_第1页
第7章 调试、测试和异常处理.ppt_第2页
第7章 调试、测试和异常处理.ppt_第3页
第7章 调试、测试和异常处理.ppt_第4页
第7章 调试、测试和异常处理.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章调试 测试和异常处理 每一个应用程序开发出来 交给客户使用前都要进行检查 确保其没有错误并且安全可靠 才能交付使用 任何软件都不能保证完全没有错误 程序员应尽力去发现其中的错误并修正这些错误 发现并消除错误的过程就是调试 如果程序调试通过 就要检测该软件是否符合用户需求 软件中是否包含未发现的错误 这个过程成为测试 在编写程序过程中 有些错误是可以预测到的 有些是预测不到的 对于可预测的错误C 提供了异常处理机制 保证程序的正确性和可靠性 本章将详细讨论C 中的调试 测试和异常处理方法 主要内容如下 为什么要对程序进行调试 调试能够解决程序中的哪些问题 VS2008的调试工具 测试的方法 异常的概念和使用 7 1调试 本节首先介绍调试的基本概念 并使用VS2008提供的调试工具调试应用程序 理解调试在程序设计中的重要性 7 1 1调试的必要性 每一个人编写应用程序都会有犯错的时候 常见的有标点符号缺失 关键字写错等语法错误 有时候会出现逻辑错误 运行时错误 这些错误有的会导致程序不能正常运行 有的虽然运行正常 但运行的结果却与预期的大相径庭 调试是解决这些问题最直接的方法和手段 有人曾经说过 程序其实都是调试出来的 从中可以看出调试的重要性 程序错误按照发生的机理可以分为三类 1 语法错误2 运行时错误有些程序能够顺利通过编译 但是在运行时会出现错误 例如 将零做除数 数组的下标溢出等情况 这类错误在应用程序运行时出现 难以调试 3 逻辑错误代码能够顺利通过编译 也不会因为错误退出程序 但是运行结果却与预期的不同 这些就属于逻辑错误 例如程序员将 号写成了 号 程序运行正常 但结果是错误的 这种错误很难发现 也是不容易修改的错误 7 1 2VS2008中的调试工具 大多数编程语言和工具都提供调试器 方便程序员观察程序的运行过程 跟踪变量的值 从而确定错误的位置 VS2008也提供了调试器 程序员可以使用该调试器调试 NET支持的任一种语言编写的代码 使用调试器时可以在代码中插入 断点 断点通知调试器程序进入中断模式 处于暂停状态 VS2008中的很多调试功能都只能在中断模式下使用 VS2008设置断点的步骤如下 单击需要添加断点的代码左边的灰色区域 或者右击准备设置断点的代码行 在弹出的快捷菜单中 单击 断点 后 再单击 插入断点 即可 图7 1为在代码中插入断点后的代码编辑窗口 插入断点后的代码行高亮显示 代码行左边会有彩色圆点指示 7 2测试 调试是解决错误的过程 测试是发现软件缺陷的过程 每一个软件在交付使用前都必须经过测试 软件测试是软件开发过程中的重要组成部分 现在已经发展成专门的技术 本节简单介绍测试的基本概念和VS2008中如何对软件进行单元测试 在消除了程序中的语法错误和运行时错误后 程序依旧不能保证完全正确 程序员可以自己进行简单的单元测试 来确定基本功能是否完善 复杂的测试有专业测试人员进行 什么是单元测试呢 单元测试是测试隔离的单元或模块 对各种方法分别使用不同的输入和执行参数来测试 单元测试的依据是详细设计描述 单元测试应对模块内所有重要的控制路径设计测试用例 以便发现模块内部的错误 单元测试多采用白盒测试技术 系统内多个模块可以并行地进行测试 VS2008将单元测试工具集成在IDE中 方便程序员的使用 下面通过一个简单的例子来说明VS2008中单元测试工具的使用 7 3异常处理 利用调试和测试 可以有效地减少程序中的错误 但是程序中的错误是不可避免的 就像人难免会生病一样 错误是客观存在的 程序员有责任和义务尽量减少错误的发生 面对不可避免的 可能出现的错误 如何积极面对 以保证程序的稳定可靠 具有非常重要的意义 7 3 1什么是异常 先来看生活中的情况 你去旅游胜地度假 往返车票 度假期间的活动都已安排妥当 按照计划是一个非常舒适的假期 但是在度假期间 由于不适应当地气候 你感冒了 因为这个异常情况的发生 不得不中止度假 这个即是出现了异常 如果你在度假前已经考虑到可能出现感冒这种状况 并且准备了合适的药物 经过适当的治疗 不必终止度假 可以继续旅游 就是进行了异常处理 这个例子中 感冒就是一个异常 因为预先考虑到可能出现的问题 进行了合适的处理 这就是异常处理 适当的异常处理可以避免系统终止当前操作 程序不会出现故障 系统也不会崩溃 7 3 2异常类 NET提供了大量与异常有关的类 用来处理异常 每一个异常类都表示一种异常 Exception类是所有异常的基类 异常类继承关系的结构图如图7 8所示 7 3 3Try和Catch捕捉 处理异常 本节示例参考 源代码 C7 Example ExceptionTest C 采用 try catch 语句结构来捕获和处理异常 使用 try catch 语句的语法结构如下 01try02 03 程序代码04 05catch Exceptione 06 07 错误处理代码08 7 3 4关键字Finally的使用 本节示例参考 源代码 C7 Example FinallyTest 除了try catch 结构可以进行异常处理外 C 还提供了另外一个结构 添加一个finally语句块 语法结构如下 01try02 03 程序代码04 05catch Exceptione 06 07 错误处理代码08 09finally10 11 finally语句块12 7 3 5使用throw引发异常 本节示例参考 源代码 C7 Example ThrowTest 除了上面的结构 C 还提供了throw语句来引发异常 使用throw语句既可以引发系统异常 也可以引发自定义异常 使用throw语句抛出异常的语法如下 throw 代码7 2中的try语句块中可以嵌套使用throw语句手动引发异常 修改为如下代码片段 01int array newint 4 声明数组02try03 04 正常处理语句块05for inti 0 iarray Length 10thrownewIndexOutOfRangeException 手动抛出异常11 12 13catch IndexOutOfRangeExceptione 异常处理14 15 异常处理语句块16Console WriteLine e Message 17 7 3 6自定义异常 本节示例参考 源代码 C7 Example ApplicationTest 程序中可能出错的情形很多 如果系统提供的异常类不能够和程序中的异常相匹配 就需要程序员自定义异常类 自定义异常类的语法如下 class自定义异常名 基类异常名 语句块 自定义异常时应遵循的编码规范 将异常类命名为以单词 Exception 结尾 如EmailException UserMessageException 自定义异常类的代码示例如下 定义异常类派生自基类ApplicationExceptionpublicclassEmailException ApplicationException publicEmailException stringmsg 自定义异常类的构造函数 继承基类异常信息 base msg 7 4小结 本章讲述了程序中排除错误和处理错误的方法 主要内容如下 调试可以搜寻和消除程序中的错误 语法错误会导致程序不能通过编译 使用调试可以有效搜寻语法错误 局部变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论