visual basic 第9章 程序调试.ppt
文本预览下载声明
第9章 程序调试 引言 9.1 程序可能发生哪几类错误 9.2 如何调试程序 9.3 如何捕获和处理错误 引言 (1) 在编写程序中难免会出现错误,从而导致程序不能运行,或能够运行却得不到正确的结果。如何跟踪、避免和解决错误,是程序开发人员面临的不可回避的问题。本章介绍VB程序的调试和错误处理。 首先给出一个简单的程序:输入6个整数,求出其中的最大值。解决此问题的正确代码如下,可以将它们放在窗体的Click事件中。为了便于说明问题,我们称之为“示例程序”,并在每行前增加了表示行号的数字。在后面的叙述中将多次引用该示例。 引言 (2) Private Sub Form_Click() 1 Dim a(5) As Integer 2 Dim i As Integer 3 Dim max As Integer 4 For i = 0 To 5 5 a(i) = Val(InputBox(输入一个整数)) 6 Next i 7 max = a(0) 8 For i = 1 To 5 9 If max a(i) Then max = a(i) 10 Next i 11 For i = 0 To 5 12 Print a(i) 13 Next i 14 Print MAX=; max End Sub 9.1 程序可能发生哪几类错误 9.1.1 编译错误 9.1.2 逻辑错误 9.1.3 运行异常错误 9.1.1 编译错误 (1) 违背VB语法规定,不正确地书写代码,会造成编译错误,这是最常见的错误类型。例如输入了拼写错误的关键字,遗漏了某些必要的标点符号,使用了For语句但没有Next语句与之对应,调用函数没有提供必要的参数,等等。 VB提供的“自动语法检测”功能能够自动检测到编译错误,并终止程序的运行。在“示例程序”中,如果在输入第5行时,将InputBox函数的参数中第二个双引号误输成中文双引号,即第5行变为: a(i) = Val(InputBox(输入一个整数”)) 9.1.1 编译错误 (2) 则运行程序时就会出现编译错误,VB自动检测到该错误并弹出错误信息,如图9.1所示。 在程序中不恰当地使用变量,也会引发编译错误。 9.1.1 编译错误 (3) 要使以后新建的窗体均自动加入该语句,可选择【工具】菜单中的【选项】,在弹出的对话框的【编辑器】选项卡中选中【要求变量声明】。强制变量显式声明后,VB将自动检查是否有未定义的变量,发现后将显示错误信息。 9.1.2 逻辑错误 程序运行时没有按照预期的方式去执行,或者没有得到预期的结果,我们说程序发生了逻辑错误。从语法的角度来看,代码是正确的,运行过程也顺利,但是却产生了不正确的结果,其原因是程序中的处理逻辑出现了错误。 例如,“示例程序”应该求出一个最大值,若将第九行中的“”误写为“”,则求出的是最小值,显然这不是我们要求的结果。 要检验程序是否含有逻辑错误,可以人工检查代码,亦可进行程序测试,设定一组特定的甚至是苛刻的操作或数据,测试程序的执行情况和运行结果。 9.1.3 运行异常错误 (1) 程序运行时,当一个语句试图执行一个不能执行的操作时,就会发生运行异常错误(实时错误)。例如,某些系统硬件问题,意料之外的数组下标越界,除法运算中除数为0,试图读取未准备好的磁盘文件等等,均会引起运行异常错误。 例如,将“示例程序”中第4行循环语句改为: For i = 0 To 6 则VB编译时不会发现其中的错误,而且还能够生成可执行程序(.EXE),但在运行中会出现图9.3所示的错误信息。 9.1.3 运行异常错误 (2) 图9.3 运行异常错误 9.1.3 运行异常错误 (3) 运行异常错误会导致程序突然异常终止而无法恢复运行,为了避免这种情形的出现,在代码中可以用VB的错误处理语句捕获并中断错误,转而执行正确的操作。 在上述三类错误中,编译错误最为简单,也最容易发现和处理,只要根据编译时提供的错误信息进行修改就可以了。只要存在编译错误,应用程序也就不可能运行起来。而对其他两类错误的处理就要复杂的多,需要花一番功夫。本章后面将介绍如何处理逻辑错误和运行异常错误。 9.2 如何调试程序 9.2.1 设置运行断点 9.2.2 使用调试窗口 9.2.3 单步调试和跳跃调试 9.2.1 设置运行断点 (1) 在设计状态,可以改变应用程序的设计和代码,但却不能立即看到这些变更对程序运行所产生的影响;在运行程序时,可以观察到程序的运行状态,但却不
显示全部