Visual Basic程序设计(第二版)-电子教案-柳青 第8章 程序调试与错误处理

上传人:E**** 文档编号:89397460 上传时间:2019-05-24 格式:PPT 页数:28 大小:147KB
返回 下载 相关 举报
Visual Basic程序设计(第二版)-电子教案-柳青 第8章  程序调试与错误处理_第1页
第1页 / 共28页
Visual Basic程序设计(第二版)-电子教案-柳青 第8章  程序调试与错误处理_第2页
第2页 / 共28页
Visual Basic程序设计(第二版)-电子教案-柳青 第8章  程序调试与错误处理_第3页
第3页 / 共28页
Visual Basic程序设计(第二版)-电子教案-柳青 第8章  程序调试与错误处理_第4页
第4页 / 共28页
Visual Basic程序设计(第二版)-电子教案-柳青 第8章  程序调试与错误处理_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《Visual Basic程序设计(第二版)-电子教案-柳青 第8章 程序调试与错误处理》由会员分享,可在线阅读,更多相关《Visual Basic程序设计(第二版)-电子教案-柳青 第8章 程序调试与错误处理(28页珍藏版)》请在金锄头文库上搜索。

1、Visual Basic程序设计(第二版),主编 柳青 严健武 中国水利水电出版社,第8章 程序调试与错误处理,应用程序在运行中出现错误是不可避免的,甚至防不胜防。虽然程序设计人员可以消除大部分潜在的错误,语法错误也可以在编译中查出,但不可能消除所有的错误。因此,必须在系统运行阶段发现或捕捉这些不可预见的错误。本章介绍VB提供的程序调试工具和错误处理程序的设计。,8.1 程序调试,应用程序在运行过程中出现错误是不可避免的,虽然细心的程序设计人员经过周密的测试可以消除许多潜在的错误,语法错误也很容易在编译中查出。实际上,人们不可能消除所有的错误。因此,必须在系统运行阶段发现或捕捉这些不可预见的错

2、误。 在应用程序中查找并修改错误的过程称为调试。为了分析应用程序的运行情况,Visual Basic 6.0提供了几种调试工具。这些工具不但对查出错误根源特别有用,而且还能用来改变应用程序,或了解其它应用程序的工作方式。,8.1.1 应用程序错误与调试,1应用程序的错误 为了更有效地使用调试手段,把可能遇到的错误分成三类,即编译错误、运行错误、逻辑错误。 (1)编译错误。编译错误是由于不正确构造代码而产生的。如果不正确地键入了关键字、遗漏了某些必需的标点符号,或在设计时使用了一个Next语句而没有For语句与之对应等,Visual Basic在编译应用程序时将检测到这些错误。编译错误还包括语法

3、错误。 Visual Basic 6.0可以检查大部分的语法错误。为了检查语法错误,可以为Visual Basic 6.0设置自动语法检测功能。 方法:在菜单栏上选择“工具选项”选项,弹出“选项”对话框,在“编辑器”选项卡中选定“自动语法检测”。图8-1是一个Visual Basic 6.0自动检测编译错误的提示框。,图8-1 一个编译错误信息提示框,(2)运行错误。应用程序在运行期间执行了一个不能执行的操作时,将会发生运行错误。 假定有语句:Speed = Miles / Hours 如果变量Hours的值为零,除法是无效操作,尽管语句本身的语法是正确的。必须在运行应用程序才能检测到这个错误

4、。 (3)逻辑错误。当应用程序未按预期方式执行时,产生逻辑错误。从语法角度来看,发生逻辑错误时,应用程序的代码是有效的,在运行时也未执行无效操作,只是产生了不正确的结果。应用程序运行的正确与否,只有通过测试应用程序和分析产生的结果才能检验出来。,2调试工具栏 Visual Basic 6.0不能诊断或更正错误,但能提供工具帮助用户分析程序是如何从过程的一部分流向另一部分的,分析变量和属性是如何随着语句的执行而改变。有了调试工具,就能深入到应用程序内部去观察,从而确定到底发生了什么,以及为什么会发生。 Visual Basic 6.0的调试支持断点、中断表达式、监视表达式、通过代码一次执行一个语

5、句或一个过程、显示变量和属性的值等方式;还包括专门的调试功能,比如可在运行过程中进行编辑、设置下一个执行语句以及在应用程序处于中断模式时进行过程测试等。 在Visual Basic的“调试”工具栏上提供了几个工具按钮,如图8-2所示。,启动,结束,中断,切换断点,逐过程,本地窗口,监视窗口,逐语句,跳出,立即窗口,快速监视,调用堆栈,表8-1简要叙述“调试”工具栏中每个工具按钮的作用,从表中可以了解到每个工具按钮在什么情况下才能更有效地帮助调试或分析应用程序。 表8-1 “Debug”工具及其作用,8.1.2 断点设置与立即窗口,1Visual Basic的模式 Visual Basic的运行

6、有三种模式:设计模式、运行模式(Run)、中断模式(Break)。 启动Visual Basic后进入设计模式,在设计模式下主窗口标题栏有“设计”二字。建立应用程序的所有步骤基本上都在设计模式下完成。 执行“启动”命令后进入执行模式,Visual Basic的主窗口标题栏上的“设计”变成了“运行”。在运行模式下,Visual Basic把全部控制权都交给应用程序,可以调试应用程序,可以查看程序代码,但不能修改程序代码,可以执行“结束”命令回到设计模式。 中断模式是程序执行过程的一个暂停状态,进入中断模式后主窗口标题栏上的“运行”变成了“break”。在中断模式下,可以检查、修改程序代码,也可以

7、检查程序中的变量的中间值,还可以继续执行。,2中断与程序跟踪 在调试时,可以在认为有问题的代码处暂停程序执行,以便使用调试工具找出错误。另外,为了查看程序的执行情况,还需要对程序进行跟踪,以便随时发现错误。Visual Basic提供断点和Stop语句,把应用程序置于中断模式之下。 可以用以下方法进入中断模式: (1)在程序中使用STOP语句,程序运行到STOP语句时进入中断模式; (2)在设计模式或中断模式下设置程序的断点; (3)程序运行时出现错误,自动进入中断模式; (4)程序运行时,按下CTRL+BREAK键进入中断模式; (5)程序运行时,在菜单栏上选择“运行中断”选项进入中断模式;

8、 (6)程序运行时,单击工具栏上的“中断”工具按钮进入中断模式。 设置断点的方法:在程序代码窗口中,将光标移至希望中断的语句上,在菜单栏上选择“调试切换断点”选项,光标所在语句设为断点。被设为断点的语句为反相显示并在其前面显示一个园点。,利用断点只能粗略地判断错误发生的位置。利用程序跟踪可以直接看到程序的执行情况和执行顺序,以找到发生错误的位置。特别是对于逻辑错误,可以跟踪到程序运行的去向。Visual Basic的跟踪方式包括逐语句执行、逐过程执行和跳出执行。 逐语句执行是每次只执行一个语句,并根据输出结果判断执行的语句是否正确。逐语句执行开始后,程序进入执行模式,执行一条语句后切换到中断模

9、式,并把下一条语句作为待执行的语句。 逐过程执行与逐语句执行基本相同。逐过程执行不跟踪到过程中,即把被调用的过程当作一条语句一次执行完毕。“跳出”可以执行当前过程的其它部分,并在调用过程的下一行中断执行。 若想暂时避开程序的某一部分,可以通过跳出执行来实现。,3监视与监视表达式 调试程序时,一个计算可能得不到想要的结果,当某个变量或属性取特定范围内的值时,可能会出现问题。许多调试问题不是由单个语句产生的,因而需要在整个过程观察变量或表达式的情况。Visual Basic自动对监视表达式进行监视。应用程序进入中断模式后,这些监视表达式出现在“监视”窗口中,可在该处观察其值。 无论何时,只要表达式

10、的值改变或等于一个特定的值,就可把应用程序设置为中断模式 来直接观察。例如,循环计数器达到一个特定值时,可用一个监视表达式把应用程序设置为中断模式,而不是一次一条语句执行数十次乃至数百次循环。当过程中的一个标志值改变时,都可使应用程序进入中断模式。 在设计或中断模式下,可添加监视表达式。方法:在菜单栏上选择“调试添加监视”选项,弹出“添加监视”对话框(见图8-3),在该对话框中添加监视表达式。,在“添加监视”对话框中,“表达式”框用于输入监视表达式。表达式是一个变量、属性、函数调用或其它任何有效的表达式。“上下文”选项组用于设置表达式中要监视变量所处的范围(位置),当有名字相同而范围不同的变量

11、时,必须使用该选项组。可把监视表达式中的变量的范围限制为由特定过程、特定窗体或模块组成,也可通过选定“所有过程及所有模块”,使范围可用于整个应用程序。“监视类型”选项组用来设置Visual Basic对监视表达式响应的方式。应用程序进入中断模式后,系统可对表达式进行监视并显示其值,在表达式的值为真(非零),或表达式的值发生改变时,可使应用程序自动进入中断模式。 添加监视表达式的步骤如下: (1)在菜单栏上选择“调试添加监视”选项,弹出“添加监视”对话框。 (2)代码编辑器中的当前表达式将出现“表达式”框中。如果这不是需要监视的表达式,可在“表达式”框中直接输入表达式。 (3)若有必要,设置要监

12、视的变量范围。如果在“上下文”中选定“过程”或“添加 模块”选项,则从相应的列表框中选定一个过程、窗体或模块名。 (4)若有必要,在“监视类型”组中选定选项按钮,以确定对监视表达式的响应 方式。 (5)单击“确定”按钮,完成设置。 也可直接把表达式从代码编辑器中拖放到监视窗口来添加表达式。添加的监视表达式都在监视窗口中列出,并显示监视表达式的值、类型等信息,如图8-4所示。,4立即窗口 程序进入中断模式后,将自动激活立即窗口;也可以直接在系统菜单栏上选择“视图立即窗口”选项,打开立即窗口,如图8-5所示。若中断时程序正在执行某个过程,该过程的代码窗口与立即窗口一起显示。在立即窗口中,可以直接执

13、行Visual Basic语句,并且不影响代码窗口中的程序代码。,图8-4 监视窗口,图8-5 调试中使用的立即窗口,立即窗口在程序调试中十分有用,可以用Print方法在立即窗口中输出(或显示)程序执行的中间结果;或在程序执行过程中显示、修改变量或某些属性的值,达到改变程序运行进程的目的;还可以用于测试通用过程,即在一个通用过程设计完成后,进入立即窗口,键入适当的语句调用通用过程,并根据过程的运行结果判断通用过程的执行是否正确。,8.2.1 设置错误陷阱语句,Visual Basic用On Error语句捕捉程序运行时的错误,以便设置错误陷阱,并利用ERR对象及相关的属性、方法确定程序运行时的

14、错误起因,以选择相应的解决措施,实现在线错误处理。 语句格式:On Error 语句有三种基本格式。 格式:On Error Goto 格式:On Error Goto 0 格式:On Error Resume Next 功能:设置或取消错误捕捉功能。 说明: (1)在程序中,用On Error语句设置的错误捕捉功能一直起作用,直到另一个On Error语句取消所设置的错误捕捉功能。在错误捕捉处理程序起作用期间,一旦发生错误,程序即转向指定的行标号并执行错误处理程序。 (2)格式设置从指定行号开始的错误处理程序。可以是任意的行标号或行号,并且要求与On Error语句在同一过程内。 (3)格式

15、取消已设置(或激活)的错误捕捉程序。在已设置错误捕捉处理程序的情况下,执行该语句将已激活的错误处理程序变成无效。 (4)格式指明发生运行错误时程序跳过错误继续执行,即发生错误时,不对错误作任何处理,直接跳到产生错误语句的下一个语句继续执行。若希望在程序出错时进行错误处理,必须用格式重新设置其它错误处理,或用格式取消该错误捕捉功能。,例如: Private Sub Form_Load() On Error Goto ErrLine If n=100 On Error Resume Next End If Exit Sub ErrLine: End Sub,8.2.2 Resume语句,语句格式:

16、该语句有三种格式。 格式:Resume 格式:Resume Next 格式:Resume 功能:该语句放在错误处理程序中,指定执行错误处理程序后继续执行的语句,以便在指定位置恢复程序的执行。 说明:该语句与Return语句类似,但只能用于错误处理程序中,即必须与On Error语句配套使用。,8.2.3 Err 对象和 Erl 函数,Err对象含有关于运行出错时的错误信息,其属性由错误的生成者设置。该错误生成者可能是Visual Basic系统,也可能是某个对象,或者是程序设计者。Err 对象的默认属性是 Number。该默认属性可以直接用对象名称Err表示,所以不必修改以前用Err函数或Err语句书写的程序代码。 出现错误时,Err返回错误的代码,错误代码的取值范围为132767。常见错误代码及对应错误信息见附录E。 Erl函数返回错误语句的行号。若发生错误的程序没有行号,则Erl函数总是返回0。虽然Visaul Basic中也可以使用行号,但行号只是某一行的标识,且与旧

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号