当前位置:文档之家› 第7章 调试、测试和异常处理PPT教学课件

第7章 调试、测试和异常处理PPT教学课件

第7章 调试、测试和异常处理
• 每一个应用程序开发出来,交给客户使用前都要进行检查, 确保其没有错误并且安全可靠,才能交付使用。任何软件 都不能保证完全没有错误,程序员应尽力去发现其中的错 误并修正这些错误。发现并消除错误的过程就是调试。如 果程序调试通过,就要检测该软件是否符合用户需求,软 件中是否包含未发现的错误,这个过程成为测试。在编写 程序过程中,有些错误是可以预测到的,有些是预测不到 的,对于可预测的错误C#提供了异常处理机制,保证程序 的正确性和可靠性。本章将详细讨论C#中的调试、测试和 异常处理方法。主要内容如下:
• 这个例子中,感冒就是一个异常,因为预先考虑 到可能出现的问题,进行了合适的处理,这就是 异常处理。适当的异常处理可以避免系统终止当 前操作,程序不会出现故障,系统也不会崩溃。
7.3.2 异常类
• .NET提供了大量与异常有关的类,用来处理异常, 每一个异常类都表示一种异常,Exception类是所 有异常的基类。异常类继承关系的结构图如图7.8 所示。
• 在消除了程序中的语法错误和运行时错误后,程序依旧不 能保证完全正确,程序员可以自己进行简单的单元测试, 来确定基本功能是否完善,复杂的测试有专业测试人员进 行。什么是单元测试呢?
• 单元测试是测试隔离的单元或模块,对各种方法分别使用 不同的输入和执行参数来测试。单元测试的依据是详细设 计描述,单元测试应对模块内所有重要的控制路径设计测 试用例,以便发现模块内部的错误。单元测试多采用白盒 测试技术,系统内多个模块可以并行地进行测试。VS2008 将单元测试工具集成在IDE中,方便程序员的使用,下面通 过一个简单的例子来说明VS2008中单元测试工具的使用。
7.3 异常处理
• 利用调试和测试,可以有效地减少程序中的错误, 但是程序中的错误是不可避免的,就像人难免会 生病一样。错误是客观存在的,程序员有责任和 义务尽量减少错误的发生。面对不可避免的、可 能出现的错误,如何积极面对,以保证程序的稳 定可靠,具有非常重要的意义。
7.3.1 什么是异常
• 先来看生活中的情况。你去旅游胜地度假,往返 车票,度假期间的活动都已安排妥当,按照计划 是一个非常舒适的假期。但是在度假期间,由于 不适应当地气候,你感冒了,因为这个异常情况 的发生,不得不中止度假,这个即是出现了异常。 如果你在度假前已经考虑到可能出现感冒这种状 况,并且准备了合适的药物,经过适当的治疗, 不必终止度假,可以继续旅游,就是进行了异常 处理。
• VS2008设置断点的步骤如下: • 单击需要添加断点的代码左边的灰色区域,或者右击准备设置断点的代码行,在弹出
的快捷菜单中,单击“断点”后,再单击“插入断点”即可。图7.1为在代码中插入 断点后的代码编辑窗口。插入断点后的代码行高亮显示,代码行左边会有彩色圆点指 示。
7.2 测试
• 调试是解决错误的过程,测试是发现软件缺陷的过程,每 一个软件在交付使用前都必须经过测试,软件测试是软件 开发过程中的重要组成部分,现在已经发展成专门的技术。 本节简单介绍测试的基本概念和VS2008中如何对软件进行 单元测试。
7.3.4 关键字Finally的使用
• 【本节示例参考:\源代码\C7\Example_FinallyTest】 • 除了try…catch…结构可以进行异常处理外,C#还提供了另外一
个结构,添加一个finally语句块,语法结构如下: • 01 try • 02 { • 03 //程序代码 • 04 } • 05 catch(Exception e) • 06 { • 07 //错误处理代码 • 08 } • 09 finally • 10 { • 11 //finally语句块 • 12 }
7.1.2 VS 2008中的调试工具
• 大多数编程语言和工具都提供调试器,方便程序员观察程序的运行过程,跟踪变量的 值,从而确定错误的位置。VS2008也提供了调试器,程序员可以使用该调试器调 试.NET支持的任一种语言编写的代码。使用调试器时可以在代码中插入“断点”,断 点通知调试器程序进入中断模式,处于暂停状态。VS2008中的很多调试功能都只能在 中断模式下使用。
பைடு நூலகம்
7.3.5 使用throw引发异常
• 1.语法错误 • 2.运行时错误 • 有些程序能够顺利通过编译,但是在运行时会出现错误,例如:
将零做除数,数组的下标溢出等情况。这类错误在应用程序运行 时出现,难以调试。 • 3.逻辑错误 • 代码能够顺利通过编译,也不会因为错误退出程序,但是运行结 果却与预期的不同,这些就属于逻辑错误。例如程序员将“+”号 写成了“-”号,程序运行正常,但结果是错误的。这种错误很难 发现,也是不容易修改的错误。
7.3.3 Try和Catch捕捉、处理异常
• 【本节示例参考:\源代码\C7\Example_ExceptionTest】 • C#采用“try…catch…”语句结构来捕获和处理异常。使
用“try…catch…”语句的语法结构如下: • 01 try • 02 { • 03 //程序代码 • 04 } • 05 catch(Exception e) • 06 { • 07 //错误处理代码 • 08 }
• 为什么要对程序进行调试。 • 调试能够解决程序中的哪些问题。 • VS2008的调试工具。 • 测试的方法。 • 异常的概念和使用。
7.1 调试
• 本节首先介绍调试的基本概念,并使用VS2008提 供的调试工具调试应用程序,理解调试在程序设 计中的重要性。
7.1.1 调试的必要性
• 每一个人编写应用程序都会有犯错的时候,常见的有标点符号缺 失、关键字写错等语法错误,有时候会出现逻辑错误、运行时错 误,这些错误有的会导致程序不能正常运行,有的虽然运行正常, 但运行的结果却与预期的大相径庭。调试是解决这些问题最直接 的方法和手段,有人曾经说过:“程序其实都是调试出来的”, 从中可以看出调试的重要性。程序错误按照发生的机理可以分为 三类:
相关主题