《《VB程序调试》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VB程序调试》PPT课件.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1程序调试程序调试 错误类型错误类型 调试和排错调试和排错2,来,来和关键数据和关键数据34567 错误类型错误类型v编辑(编辑(时的时的)错误(语法)错误(语法)当用户在代码窗口当用户在代码窗口编辑编辑代码时,代码时,VB会对程序直接进会对程序直接进行语法检查行语法检查 ,当发现程序中存在输入错误(当发现程序中存在输入错误(打字错误,遗漏关键字或标点符等语法错误),),VB会提示出错信息。会提示出错信息。出错的那一行变成红色红色。这时,用户必须单击“确定”按钮,关闭出错提示窗,然后对出错行进行修改。设置设置“自动语法检查自动语法检查”:工具工具选项选项编辑编辑器器8v编译(编译(时的时的)错
2、误()错误(语法语法)编译错误编译错误是指单击是指单击“启动启动”按纽,按纽,VB开始运行程序前,开始运行程序前,先编译执行的程序段时产生的先编译执行的程序段时产生的错误错误。常见于。常见于用户未定义变量用户未定义变量,缺少缺少必需的标点符号必需的标点符号,缺少关键字,缺少关键字,块块IF缺少缺少End If等。这时,VisualBasic也弹出一个子窗口,提示出错信息,出错的那一行被高亮度显示。9v运行(时的)错误运行(时的)错误运行时的错误指运行时的错误指VB在编译通过后,在编译通过后,运行代码运行代码时时发生的错误发生的错误。常见于由指令代码执行了一非法操作而引起常见于由指令代码执行了一
3、非法操作而引起(语句语法正确)。如:。如:类型不匹配,计算溢出、试图打开一个不存在的文件类型不匹配,计算溢出、试图打开一个不存在的文件等等。例如,对于以下语句:c=a/b如果变量b的值为零,除法就是无效的操作,尽管语句本身的语法是正确的。必须运行应用程序才能检测到这个错误。10v逻辑错误逻辑错误程序运行后,得不到程序运行后,得不到所期望的结果,所期望的结果,说明程序存在逻辑错说明程序存在逻辑错误误(从语法角度来看,应用程序的代码可以是有效的,在运行时也未执行无效操作,但还是产生了不正确的结果)。例如:要计算z=x*y在代码中却写成z=x+y该语句既符合语法要求,又能够正确执行,只是产生了错误的
4、计算结果。因此语句或程序运行的正确与否,只有通过测试应用程序和分析产生的结果才能检验出来。运行错误或逻辑错误需对代码运行错误或逻辑错误需对代码测试测试及分析及分析-如对表达式如对表达式 常见如:常见如:运算符使用不正确、语句的次序不对运算符使用不正确、语句的次序不对、循环语句的循环语句的起起 始、终值不正确始、终值不正确及算法设计错误及算法设计错误等。等。逻辑错误不产生出错信逻辑错误不产生出错信息,较难排除。息,较难排除。需要仔细地阅读分析程序以及调试需要仔细地阅读分析程序以及调试。判断是否逻辑错误常用判断是否逻辑错误常用黑(白)盒测试法及分析。黑(白)盒测试法及分析。如用典型如用典型测试用例
5、,测试用例,e1=2.71828?(实习实习6-15)11调试程序的任务就是要确定导致错误结果的原因,以及错误发生的地方.错误的原因有多种,VisualBasic为调试程序提供了几种工具,这些调试工具可以帮助人们分析程序的运行是如何从过程的一部分流动到另一部分的.分析变量和属性是如何随着语句的执行而改变的。有了调试工具,就能深入到应用程序内部进行观察,从而确定到底发生了什么以及为什么会发生。调试工具可以帮助设计者了解应用程序当前的界面外观、变量或表达式的值、属性的值、活动的过程调用等。VisualBasi的调试支持主要有:单步执行、设置断点、建立中单步执行、设置断点、建立中断表达式、设置监视表
6、达式、显示变量和属性值。断表达式、设置监视表达式、显示变量和属性值。VisualBasic为调试提供了三个调试窗口,分别为“立即”窗口、“监视”窗口和“本地”窗口。借助这些窗口,再加上设置断点、单步执行等调试功能,可以帮助我们发现、定位错误,继而排除错误。12 调试和排错(一)调试和排错(一)调试工具主要通过设置断点,插入观察变量,逐行执行和过程跟踪等,在调试窗口调试窗口中显示相应的信息。vVB 的三种模式 设计模式;运行模式;中断模式v插入断点和逐语句跟踪(模块)断点是告诉VB挂起程序执行的一个标记,当程序执行到断点处即暂停程序的运行,进入中断模式。设置或删除断点的步骤中断模式下,直接查看某
7、个变量的值,只要把鼠标指向所关心的变量处,稍停一下,就在鼠标下方显示该变量的值。断点标记当前行当在运行模式,按了当在运行模式,按了“中中断断”命令或当程序出现运命令或当程序出现运行时错误时进入行时错误时进入中断模式中断模式。可以查看代码、修改代码、可以查看代码、修改代码、检查数据检查数据静态调试静态调试13v调试窗口(有三个):“立即”窗口、“监视”窗口、和“本地”窗口。可单击视图菜单中的对应命令打开这些窗口。Debug.Print方法与“立即”窗口“本地”窗口(可自动显示出所有在当前过程中的变量声明及变量值)。“监视”窗口(可自动显示监视表达式的值)断点位置:局部数据结构;重要路径;模块(过
8、程)接 口;I/O等静态调试静态调试14一一.Debug.Print方法与方法与“立即立即”窗口窗口立即窗口立即窗口在中断模式时会自动打开。在立即窗口立即窗口输入代码,按下ENTER键,会立即立即执行。可利用立即窗口直接对某表达式求值,直接给变量或属性赋立即窗口直接对某表达式求值,直接给变量或属性赋值,或者直接调用某个过程。值,或者直接调用某个过程。注意注意:在中断模式下,立即窗口中的语句,是根据显示在过程框的内容或范围来执行的。举例来说,如果键入Printvariablename,则输出的就是局域变量的值。这和在程序中止时Print 方法在正在执行的过程产生一样.15PrivateSubFo
9、rm_Click()x=6:Sum=0ForI=1To10Step-2Sum=Sum+INextiDebug.Print“I=“;I,“Sum=“;SumEndSub运行时在立即窗口中输出:程序中程序中直接使用直接使用Debug.Print方法方法可在可在运行时运行时在立即窗在立即窗口显示,而不影响口显示,而不影响程序本身输出。程序本身输出。DebugPrint例例16二二“本地本地”窗口窗口本地窗口本地窗口:中断模式下自动显示出所有在当前过程中的变量声明及变量值)当程序的执行从一个过程切换到另一个过程时,本地窗口的内容会发生改变,它只反映当前过程中可用的变量。若本地窗口为可见的,则每当从执行
10、方式切换到中断模式或是操纵过程中的变量时,它就会自动的重建显示。步骤:选中断点(模块或过程)/视图/本地窗口/运行本地窗口例本地窗口例17三三“监视监视”窗口窗口“监视监视”窗口例窗口例可以把某些关键变量或表达式放在监视窗口中,称为监视表达式。当程序进入中断模式时,VisualBasi将显示这些监视表达式的状态。监视窗口:监视窗口:中断模式下自动显示(选中的)监视表达式的值。当工程中有定义监视表达式定义监视表达式时,就会自动出现。添加一个监视表达式:添加一个监视表达式:在设计时或中断模式下可添加监视表达式。”调试调试”用“添加监视”对话框(如图所示)来实现。步骤:选中表达式/调试/添加监视/确
11、定18举例举例(如图如图 所示所示):“监视监视”窗口例窗口例本地窗口例本地窗口例DebugPrint例例19动态调试动态调试在设计或中断模式下:“调试调试”菜单“逐语句”或“逐过程”等动态调试动态调试逐语句等20了解了VisualBasic的各种调试功能之后,就可以根据其调试手段检测程序中的各种逻辑错误。确定错误的位置和原因,达到排除错误的目的。对于运行期的各种错误,有些简单的错误可以通过以上调试方法找出,并通过修改代码加以解决。例如,对于以下程序:PrivateSubCommandl_Click()x=Val(Textl.Text)y=Val(Text2.Text)z=Log(x)/Log
12、(y)Text3.Text=zEndSub21当在文本框Textl或Text2中输入小于零的数时,或在Text2中输入l时,都会产生一个运行期错误。对于该错误,可以将代码改写成:PrivateSubCommandl_Click()x=Val(Textl.Text)y=Val(Text2.Text)Ifx0Andy0Andy1Thenz=Log(x)/Log(y)Text3.Text=zElseMsgBox“输入数据非法,请重新输入”EndIfEndSub22该程序通过条件语句避免了对非法数据的计算.但是,程序运行过程中所产生的数据或所遇到的问题往往是难以预料的。例如,在用户指定一个文件名时输入
13、了非法的文件名,或在程序中企图删除一个不存在的文件,对于这类错误,常常是编写代码时难以预料的问题。因此,需要在程序中添加错误处理机制,对程序中各种错误进行单独的处理,使应用程序即使在遇到异常情况时也能正常运行,避免致命性的错误。23常见错误常见错误1.1.使用中文标点符号使用中文标点符号系统产生“无效字符”,以红色显示。(此为语法错误。)2.2.字母和数字形状相似字母和数字形状相似小写字母“l”和数字“1”形式相同、小写字母“o”与数字“0”。(易造成变量名写错。导致逻辑错误。)3.对象名称对象名称(Name)(Name)属性写错属性写错 Text1、Text2、Command1 txtInput、txtOutput、cmdOk(编辑时的错误,此为语法错误。)4.4.对象的属性名、方法名、标准函数名写错对象的属性名、方法名、标准函数名写错 尽量使用自动列出成员功能。正确的系统按规定的大小写表示。5.5.无意形成控件数组无意形成控件数组 建立控件时小心使用“复制”、“粘贴”按钮6.6.打开工程时找不到对应的文件打开工程时找不到对应的文件 保存文件时先保存窗体.frm文件、再保存.vbp文件,注意路径。
限制150内