欢迎来到天天文库
浏览记录
ID:39339798
大小:392.31 KB
页数:28页
时间:2019-07-01
《程序调试与错误处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章程序调试与错误处理教学目的和要求:了解VB程序错误类型及其产生原因,掌握程序调试的方法和技巧,掌握使用错误陷阱技术捕获错误并进行错误处理的方法。第10章程序调试与错误处理10.1VB程序错误的类型10.2程序调试10.3错误处理本章小结习题九实验十三程序调试步骤实验10.1VB程序错误的类型10.1VB程序错误的类型VB程序出现的错误可分为三大类:编译错误、运行错误和逻辑错误。1)编译错误编译错误是由于编程人员未能正确构造程序代码而产生的错误。编译错误主要包括语法错误和结构错误。语法错误指:以不合法的方式将合法的符号组合在一起而产生的错误。比如,键入的关键字不正确、遗漏了某些必
2、需的标点符号、括号、对象属性引用没有对象等。结构错误指:语句结构不完整或结构交叉而引起的错误。比如,For语句没有Next与之对应;块If语句中包含For-Next语句,而Next在EndIf之后出现等情况。10.1VB程序错误的类型编译错误在VisualBasic编译应用程序或启动运行时就会自动检测到。这需要设置系统的“自动语法检测”功能。设置方法:“工具”菜单→“选项”→“编辑器”→“自动语法检测”。程序员可根据编译错误提示去改正错误。例10.1编译错误示例。如下图所示,程序中的循环结构For-Next与选择结构if-EndIf交叉,运行时产生编译错误。10.1VB程序错误的类型3
3、)逻辑错误逻辑错误导致应用程序不按预期方式执行。从语法角度来看,应用程序的代码是有效的,在运行时也没有无效操作,但产生了不正确的结果。这是因为代码中存在逻辑上的缺陷而引起的。系统不能检测出逻辑错误,只有通过测试应用程序和分析产生的结果才能检验出来。2)运行错误应用程序在运行时,当一个语句执行一个不能执行的操作,就会发生运行时错误。例如语句:Speed=Miles/Hours语句本身的语法无错误,但变量Hours的值若为零,除法就是无效操作,这种错误,必须运行应用程序才能检测到。10.1VB程序错误的类型例10.2运行错误示例。程序用于打开一个文件。运行时,在文本框中输入一个将要打开的文
4、件名,若此文件不存在,程序就会出现运行错误,如下图所示。要避免这个错误,可在程序中加一个条件判断,若文件存在才打开。10.2程序调试10.2程序调试VB集成开发环境提供了多种程序调试工具,主要包括:设置断点、单步运行、监视窗口和立即窗口等,这里主要介绍程序调试工具及调试方法和技巧。程序调试工具栏如图所示:启动/继续中断结束切换断点逐语句逐过程跳出本地窗口调用堆栈立即窗口监视窗口快速监视10.2程序调试10.2.1VB的中断模式在VB中断模式下,可以查看、修改程序代码,也能查看数据。进入程序中断模式有三种方式:(1)在运行状态下,执行“运行”菜单下的“中断”命令,或按Ctrl+Break
5、键,即可进入中断模式;(2)在程序代码中设置断点,当程序运行到断点处就自动进入中断模式;(3)程序运行时,由于错误的产生而自动进入中断模式。在中断模式下,对程序代码修改完毕后,可选择“运行”菜单下的“继续”、“结束”或“重新启动”命令而退出中断模式。10.2程序调试10.2.2调试窗口在中断模式下,可用鼠标指向要观察的变量或对象属性,以直接显示其值,另外通过立即窗口、本地窗口、监视窗口和调用栈窗口等,可以监视程序运行过程中变量的变化情况。1)立即窗口主要用于查看变量的值。立即窗口使用的主要方式有:(1)Debug.Print[输出列表]在程序代码中,使用DEBUG.PRINT方法,可以
6、将输出列表中的各项值输出到立即窗口中。(2)立即窗口中使用Print或?语句在立即窗口中使用Print或?语句,显示变量或对象的属性值。10.2程序调试例10.3程序结果输出到立即窗口示例。如下图所示,使用Debug.Print将计算阶乘函数Fact(5)执行的中间结果输出到立即窗口中。在立即窗口中,测试变量t、i在当前断点处的值。10.2程序调试(3)用赋值语句可修改变量或对象的属性值若当前程序运行的中间结果不正确,可以在立即窗口中,输入正确的中间值,以此调试后面的程序是否正确。(4)过程或函数的测试在主调程序调用过程或函数之前应保证过程或函数的正确性,以提高程序的调试效率。在立即窗
7、口中通过执行过程或函数来实现对过程或函数正确性的测试。2)本地窗口本地窗口可以自动显示当前过程中所有变量及它们的值。当程序从一个过程切换到另一过程,本地窗口的内容会随之发生变化。在主程序调用过程或函数之前应保证过程或函数的正确性,以提高程序的调试效率。例10.4立即窗口用于改变变量的值和函数测试示例。如下图所示。在刚进入函数Fact时,通过立即窗口改变变量N的值为6,则Fact计算的结果720是6!,显示5!=720。进一步测试函数Fact,结
此文档下载收益归作者所有