欢迎来到天天文库
浏览记录
ID:21989718
大小:333.50 KB
页数:25页
时间:2018-10-21
《vb程序调试与错误处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9错误处理程序调试与程序调试的主要任务:查找程序的错误和排除错误本章主要内容VB程序中的错误类型程序工作模式程序调试错误处理第9章程序调试与错误处理三类错误类型:编译错误,逻辑错误和运行错误1.编译错误编译错误是指在程序编译过程中出现的错误。通常是由于不正确书写代码而产生的。例如:关键字写错,遗漏标点符号,括号不匹配等。较为容易排除。VB提供了自动语法检查功能,能指出并显示这些错误,帮助用户纠正语法错误。例子:Foort=1To1009.1VB程序中的错误类型2.运行错误运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。例
2、如,除法运算中除数为零,访问文件时文件夹或文件找不到等。这种错误只有在程序运行时才能被发现。举例(“下标越界”):PrivateSubForm_Load()DimD(20)AsInteger,kAsIntegerFork=1To30D(k)=k*KNextkEndSub3.逻辑错误逻辑错误使程序运行时得不到预期的结果。这种程序没有语法错误,也能运行,但却得不到正确的结果。例如,在一个算术表达式中,把乘号“*”写成了加号“+”,条件语句的条件写错,循环次数计算错误等例如,要求10!,若采用:PrivateSubForm_Load()Dim
3、tAsIntegerFori=1To10t=t*iNextiShow:PrinttEndSub运行程序时输出的结果是0通常,调试程序过程中所花的大部分时间和精力都在逻辑错误上三种工作模式:设计模式、运行模式和中断模式1.设计模式在设计模式下,可以建立应用程序的用户界面,设置控件的属性,编写程序代码等2.运行模式在运行模式下,可以测试程序的运行结果,可以与应用程序对话,还可以查看程序代码,但不能修改程序3.中断模式在中断模式下,可以利用各种调试手段检查或更改某些变量或表达式的值,或者在断点附近单步执行程序,以便发现错误或改正错误
4、9.2程序工作模式进入中断模式的方法:(1)在代码中插入Stop语句;(2)在代码窗口中设置断点(用菜单命令);(3)在代码窗口中设置断点(鼠标操作);(4)在程序运行时强制“中断”;(5)当程序运行出现错误。当检查调试通过后,需要清除断点程序调试一般包括静态检查和动态检查9.3.1静态检查与动态检查静态检查程序的基本方法是逐行逐句地读程序,弄清楚每条语句的作用,预见每条语句和模块的执行结果,判断是否与预期结果相一致,这就是静态检查,也称人工检查。静态检查无误后,就可以进行更有效的动态检查。通过上机调试来发现错误称为动态检查。动态检查的基本方法是输
5、入一组典型的数据来运行程序。程序对这些数据处理结果应是已知的,通过运行后实际结果和预想结果相比较,可以判断程序的正确性9.3程序调试例如,为了检验求解一元二次方程ax2+bx+c=0的程序(见第四章例4.14)是否正确,我们可以输入以下四组a,b,c的数值:第一组:0,1,1预期结果:显示“不是二次方程”第二组:1,-2,1预期结果:x1=1,x2=1(两个相等实根)第三组:1,1,-2预期结果:x1=1,x2=-2(两个不等实根)第四组:1,2,2预期结果:x1=-1+i,x2=-1-i(两个共轭复根)动态检查中,通常在一些敏感点处设置断
6、点,检查一些变量或表达式的值。使用“调试”菜单或“调试”工具栏1.切换断点“切换断点”按钮用来设置断点2.逐语句VB允许逐条语句执行程序,每执行一条语句后就返回中断模式。如果执行的是过程调用的代码(如Call),“逐语句”操作也会跟踪到被调过程中继续一条语句一条语句的执行3.逐过程逐过程执行是以整个函数或过程为一个整体,一次执行。逐过程与逐语句一样,能够一条语句一条语句地执行代码。把被调用的函数或过程当作一个语句来看待切换断点逐过程本地窗口监视窗口逐语句跳出立即窗口快速监视9.3.2使用VB调试工具4.跳出单击“调试”工具栏上的“跳出”按钮,
7、则VB将连续执行完该过程的其余部分,返回调用过程的下一条语句并回复中断模式5.本地窗口显示当前过程中所有变量和活动窗体的所有属性值Me代表当前窗体;单击“+”号或“-”号6.立即窗口可以检查某个属性或者变量的值,也可以对表达式求值,或为变量或属性赋值等7.监视窗口对用户定义的表达式进行监视例9.1运行以下的窗体装载事件过程:PrivateSubForm_Load()Dima%a%=5:a=5.4c=1/(a-a%)EndSub运行时出错,消息框提示发生“除数为零”的错误。单击消息框中的“调试”按钮,即可进入中断模式,VB在代码窗口中用箭头指
8、示发生错误的语句“C=1/(a-a%)”。在立即窗口中键入以下命令来检查变量的值:?a,a%´
此文档下载收益归作者所有