【vb精品源码栏目提醒】:本文主要为网学会员提供“【精品】VB第9章电子讲稿 - 考试认证”,希望对需要【精品】VB第9章电子讲稿 - 考试认证网友有所帮助,学习一下!
与第9章 程序调试与错误处理 程序调试的主要任务:查找程序的错误和排除错误 本章主要内容
VB程序中的错误类型 程序工作模式 程序调试 错误处理9.1
VB程序中的错误类型 三类错误类型:编译错误,逻辑错误和运行错误 1. 编译错误 编译错误是指在程序编译过程中出现的错误。
通常是 由于不正确书写代码而产生的。
例如:关键字写错,遗漏标点符号,括号不匹配等。
较为容易排除。
VB提供了自动语法检查功能,能指出 并显示这些错误,帮助用户纠正语法错误。
例子: Foor t 1 To 100 2. 运行错误 运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。
例如,除法运算中除数为零,访问文件时文件夹或文件找不到等。
这种错误只有在程序运行时才能被发现。
举例“下标越界”: Private Sub Form_Load Dim D20 As Integer k As Integer For k1 To 30 DkkK Next k End Sub3. 逻辑错误 逻辑错误使程序运行时得不到预期的结果。
这种程序没有语法错误,也能运行,但却得不到正确的结果。
例如,在一个算术表达式中,把乘号“”写成了加号“”,条件语句的条件写错,循环次数计算错误等 例如,要求10,若采用: Private Sub Form_Load Dim t As Integer For i1 To 10 tti Next i Show :Print t End Sub 运行程序时输出的结果是0 通常,调试程序过程中所花的大部分时间和精力都在逻辑错误上9.2 程序
工作模式 三种工作模式:设计模式、运行模式和中断模式 1.
设计模式 在设计模式下,可以建立应用程序的用户界面,设置控 件的属性,编写程序代码等 2. 运行模式 在运行模式下,可以测试程序的运行结果,可以与应用 程序对话,还可以 查看程序代码,但不能修改程序 3. 中断模式 在中断模式下,可以利用各种调试手段检查或更改某些 变量或表达式的值,或者在断点附近单步执行程序,以便发 现错误或改正错误进入中断模式的方法:1在代码中插入Stop语句;2在代码窗口中设置断点用菜单命令;3在代码窗口中设置断点鼠标操作;4在程序运行时强制“中断”;5当程序运行出现错误。
当检查调试通过后,需要清除断点9.3
程序调试 程序调试一般包括静态检查和动态检查 9.3.1 静态检查与动态检查 静态检查程序的基本方法是逐行逐句地读程序,弄清楚每条语句的作用,预见每条语句和模块的执行结果,判断是否与预期结果相一致,这就是静态检查,也称人工检查。
静态检查无误后,就可以进行更有效的动态检查。
通过上机调试来发现错误称为动态检查。
动态检查的基本方法是输入一组典型的数据来运行程序。
程序对这些数据处理结果应是已知的,通过运行后实际结果和预想结果相比较,可以判断程序的正确性 例如,为了检验求解一元二次方程ax2bxc0的程序见第 四章例4.14是否正确,我们可以输入以下四组abc的数值:第一组:0,1,1 预期结果:显示“不是二次方程” 第二组:1,-2,1 预期结果:x11,x21两个相等实根 第三组:1,1,-2 预期结果:x11,x2-2两个不等实根 第四组:1,2,2 预期结果:x1-1i x2-1-i两个共轭复根 动态检查中,通常在一些敏感点处设置断点,检查一些变 量或表达式的值。
9.3.2 使用
VB调试工具 使用“调试”菜单或“调试”工具栏 切换断点 逐过程 本地窗口 监视窗口 1.切换断点 “切换断点”按钮用来设置断点 逐语句 跳出 立即窗口 快速监视 2. 逐语句
VB允许逐条语句执行程序,每执行一条语句后就返回中断 模式。
如果执行的是过程调用的代码如Call,“逐语句”操作也 会跟踪到被调过程中继续一条语句一条语句的执行 3. 逐过程 逐过程执行是以整个函数或过程为一个整体,一次执行。
逐过程与逐语句一样,能够一条语句一条语句地执行代码。
把 被调用的函数或过程当作一个语句来看待 4. 跳出 单击“调试”工具栏上的“跳出”按钮,则
VB将连续执行完该过程的其余部分,返回调用过程的下一条语句并回复中断模式 5. 本地窗口 显示当前过程中所有变量和活动窗体的所有属性值 Me代表当前窗体;单击“”号或“-”号 6. 立即窗口 可以检查某个属性或者变量的值,也可以对表达式求值,或为变量或属性赋值等 7. 监视窗口 对用户定义的表达式进行监视 例9.1 运行以下的窗体装载事件过程: Private Sub Form_Load Dim a a 5: a 5.4 c 1 / a - a End Sub 运行时出错,消息框提示发生“除数为零”的错误。
单击消息框中的“调试”按钮,即可进入中断模式,
VB在代 码窗口中用箭头指示发生错误的语句“C1/a-a”。
在立即窗口中键入以下命令来检查变量的值: a a 是Print的简写 出错前变量a的当前值为整数5,而不是5.4,故发生了“除数 为零”的错误例9.2 计算t 0.1 0.2 0.3 …… 0.9 1 编写的程序代码如下: Private Sub Form_Load Show Dim t As Single i As Single t0 For i 0.1 To 1 Step 0.1 tti Next i Print 总和: t End Sub 运行结果为: 总和:4.5 这不是正确的答案,正确结果应是5.5 利用调试工具来查找出错原因,操作步骤如下: 1在代码窗口中设置断点。
为了了解循环过程中变量i和t的变化情况,可在语句t t i 处设置断点。
2重新运行程序。
程序在断点处中断运行,进入中断模式 3单击“调试”工具栏上的“本地窗口”按钮,利用本地窗口来监视过程中各量及属性值的变化情况 4单击“调试”工具栏上的“逐语句”按钮,让程序单步执行。
“本地窗口”会显示出程序中所用变量的当前值。
5连续单击“逐语句”按钮,使程序在For语句循环执行9次,此时本地窗口显示的变量值如图9.7所示 6再次单击“逐语句”按钮。
程序不再继续循环,而 是退出循环,去执行Next i下一个的Print语句。
可以发现上述循环语句只是循环9次。
本来应该循环10次,但由于小数点在机器内存储和处理会发生微小误差,当执行到第9次循环时,循环变量i的值为0.9000001,再加上步长值0.1时,已经超过1,往下就不再执行循环体了。
所以实际上才循环9次,即只计算0.1 0.2 0.3 … 0.94.5 当步长值为小数时,为了防止丢失循环次数,可将终值适当增加,一般是加上步长值的一半,例如: For i0.1 To 1.05 Step 0.1 调试程序往往比写程序更难 9.4 错误处理 由于应用环境等的改变,有时程序还会出现错误。
例如文件未找到等。
这类“运行时错误”并非致命的错误。
对于这些可预见的错误,可以利用
VB的错误处理程序捕获它,对其进行适当的处理,并使程序继续执行。
这样就能够使开发的
软件具有更强的适应性。
9.4.1 错误处理的步骤 1利用Err对象记录错误的类型、出错原因等。
2强制转移到用户自编的“错误处理程序段”的入口。
3在“错误处理程序段”内,根据具体错误进行处理,如果
问题有解决方法,则在处理后返回原程序某处继续执行,否则,停止程序执行