程序调试和错误处理.ppt
《程序调试和错误处理.ppt》由会员分享,可在线阅读,更多相关《程序调试和错误处理.ppt(28页珍藏版)》请在三一办公上搜索。
1、2023/9/14,清华大学出版社,1,第10章 程序调试和错误处理,10.1 VB程序的错误类型10.2 VB程序的工作模式 10.3 程序调试10.4 错误捕获及处理,2023/9/14,清华大学出版社,2,【目的要求】1.理解程序的错误类型;2.掌握VB提供的常用调试工具的使用3.3.掌握错误的捕获与处理方法;【重点】错误的捕获与处理方法;,2023/9/14,清华大学出版社,3,10.1 VB程序的错误类型,VB应用程序的错误一般可分为3类,即编译错误(语法错误)、运行错误和逻辑错误。1.编译错误:指程序在编译时出现的错误(语法错误)。2.运行错误:运行错误是指程序本身没有编译(语法)
2、错误,这种错误在编译时很难发现,只是在运行时才能暴露出来。例如下面求某个数阶乘的函数:,Private Sub Command1_Click()Print fact(14)End Sub,程序本身没有任何语法错误,但在程序运行过程中,语句Print fact(14)(计算14的阶乘)的返回的值超出整型数值的范围,产生数据溢出导致程序出错。,Private Function fact(ByVal n As Integer)As Integer Dim s As Integer,i As Integer s=1 For i=1 To n s=s*i Next i fact=sEnd Functio
3、n,2023/9/14,清华大学出版社,4,3.逻辑错误,逻辑错误是指从语法上看程序代码是有效的,并且也可以运行,但得不到应有(正确)的结果。与上述两种错误不同,逻辑错误不报告错误信息。,【例10.1】编程计算0.1+0.2+0.3+0.9的值。Private Sub Command1_Click()Dim i As Single,s As Single For i=0.1 To 0.9 Step 0.1 s=s+i Next i Print sEnd Sub,正确的结果应该是4.5,但按照上面的代码,结果却是3.6。,2023/9/14,清华大学出版社,5,10.2 VB程序的工作模式VB程
4、序有三种工作模式:设计模式(Design Time)、运行模式(Run Time)和中断模式(Break Model)。1.设计模式 2.运行模式 3.中断模式在中断模式下,暂停应用程序的执行,此时可以检查程序代码,并可以进行修改,也可以检查数据是否正确,修改完程序后,可继续执行程序。VB所有调试手段均可以在中断模式下应用。可以用以下四种方式进入中断模式:l 在“运行”模式下,执行“运行”菜单中的“中断”命令;l 在程序中设置断点,程序运行到断点处时自动进入中断模式;l 在程序中加入“STOP”语句,程序运行到该语句处时自动进入中断模式;l 在程序运行过程中,如果出现错误,则自动进入中断模式;
5、,从语法和算法设计思路来看,都没有错误,但始终得不到正确的结果。这类错误是所有错误中最难诊断、最难解决的错误,只有通过调试工具的帮助,对程序进行逻辑分析、代码调试及分析、比较运行结果等综合手段才能最终加以解决。,10.3 程序调试10.3.1 Visual Basic程序调试工具 为了使用调试工具,应首先进入中断模式,此时程序中的变量和控件的属性值都被保留下来,为用户分析应用程序的当前状态,解决程序的各种错误提供了有力的保障。图10-6所显示的【调试】工具栏为用户提供了许多功能强大的调试工具。,2023/9/14,清华大学出版社,6,图10-6,运用这些调试工具可以对产生逻辑错误的程序进行调试
6、,对程序的调试大致分为三个步骤:第一步是设置断点;第二步是跟踪程序运行;第三步是使用调试窗口。,2023/9/14,清华大学出版社,7,1.设置断点,例:验证【例10.1】的运行结果错在何处?,(1)在程序代码区人工设定一个断点。(2)运行程序,当执行到了设置断点的代码行时,程序终止进入中断状态,将鼠标移动到某个变量上面,可以看到设置断点代码行中变量的值。,2023/9/14,清华大学出版社,8,2.跟踪程序运行,逐语句执行在调试工具栏上有一个单步执行程序的按钮。单击该按钮可以单步执行程序。也可以用热键F8来实现单步执行程序,或者在【调试】菜单上选取【逐语句】选项。逐过程执行“逐过程执行”是把
7、被调用的过程视为一个基本单位来执行,然后转回到当前过程的下一语句。操作方法:单击“调试”工具栏上的“逐过程”按钮。也可以用组合键Shift+F8或“调试”菜单上的“逐过程”选项。跳出当使用逐语句方式进入到一个过程中,如果确认该过程的语句绝对没有问题,可以单击【调试】工具栏的【跳出】按钮或按下快捷键Ctrl+Shift+F8,从当前过程中跳出,去执行过程调用者的下一条语句。,2023/9/14,清华大学出版社,9,3.调试窗口,在上面的方法中我们只通过设置断点和跟踪程序运行这两步,就已经检查出程序的错误了。对于较复杂的程序的调试,需要使用VB提供的调试窗口来完成。调试窗口主要包括立即窗口、本地窗
8、口、监视窗口等。,运行到光标处 在对程序进行跟踪时,想略过不感兴趣的部分代码(如次数很多循环语句),这时可以把光标设置在需要停止运行的代码上,然后按下快捷键Ctrl+F8或选择【调试】菜单的【运行到光标处】选项。,例:使用调试窗口来完成调试【例题10.1】的运行结果错在何处?,2023/9/14,清华大学出版社,10,本地窗口,只显示当前过程中变量的值(即使是全局变量,也不会显示)。打开本地窗口的步骤:1)设置断点后,启动程序;2)程序被中断后,单击【视图】菜单中的【本地窗口】选项或单击【调试】工具栏的【本地窗口】按钮。,监视窗口 使用【监视】窗口有两种用法:一是可用来显示某些表达式或变量的值
9、,以确定这写表达式或变量的结果是否正确;二是可以设置当某个表达式返回True时,强迫程序中断。,2023/9/14,清华大学出版社,11,用法一:例:通过【监视】窗口对【例10.1】进行调试,检测变量s和i的值的变化情况。用法二:这种用法是在当表达式的值满足某个条件时,可以使应用程序自动进入到中断模式的一种调试手段。这种方法不需要在代码区设置断点。例:在【例10.1】中,为了检测当变量s的值大于3时,循环变量i的值;可以通过对【监视窗口】的相关设置来完成。,思考:判断12100的累加结果在i?时累加值超过4000,使用【监视窗口】如何完成?,2023/9/14,清华大学出版社,12,立即窗口,
10、使用立即窗口可以检查某个属性或变量的值,还可以对表达式求值、为变量或属性赋值。立即窗口的使用有下面三种:(1)在设计模式下,直接在立即窗口中对变量赋值,或使用Print方法输出变量的值。(2)在应用程序中,使用Debug.Print 语句把信息输入到立即窗口。例如,将【例10.1】的程序代码中的输出语句改为“Debug.Print s”,运行结果会在立即窗口中输出。(3)在中断模式下,可以在立即窗口中使用Print方法输出当前变量或控件的值,也可以对当前变量或控件的属性赋值。注意:在立即窗口中,不接受数据声明,如:Dim x as Integer。,2023/9/14,清华大学出版社,13,1
11、0.3.2 调试示例,VB提供的各种调试工具,不仅可以帮助用户检查程序的逻辑错误,而且还可以帮助用户理解程序的执行过程,如过程(函数)的参数传递方式。,【例10.2】设计一窗体,如左图所示。在窗体上放置文本框Text1、Text2,分别用于输入一个整数闭区间的上下限,当单击【计算】按钮时,Text3中显示该闭区间上所有整型数据的累加和。其中累加的计算使用过程sum来完成。,2023/9/14,清华大学出版社,14,双击【计算】按钮,编写程序代码:Private Sub Command1_Click()Dim x As Integer,y As Integer,z As Integer x=Va
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 调试 错误 处理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6011270.html