《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理

上传人:E**** 文档编号:89435821 上传时间:2019-05-25 格式:PPT 页数:33 大小:152.50KB
返回 下载 相关 举报
《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理_第1页
第1页 / 共33页
《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理_第2页
第2页 / 共33页
《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理_第3页
第3页 / 共33页
《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理_第4页
第4页 / 共33页
《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理》由会员分享,可在线阅读,更多相关《《Visual Basic程序设计基础》-杨小影-电子教案 第9章 程序调试与错误处理(33页珍藏版)》请在金锄头文库上搜索。

1、第9章 程序调试与错误处理,9.1 程序调试 9.2 错误处理程序设计 9.3 错误处理实例,9.1 程序调试,9.1.1应用程序错误与调试 9.1.2段点设置与立即窗口,返回,9.1.1应用程序错误与调试,1应用程序的错误 为了更有效的使用调试手段,把可能遇到的错误分成3类,即编译错误、运行错误、逻辑错误 2调试工具栏 Visual Basic 6.0不能诊断或更正错误,但能提供工具帮助用户分析程序是如何从过程的一部分流向另一部分,分析变量和属性是如何随着语句的执行而改变。有了调试工具,就能深入到应用程序内部去观察,从而确定到底发生了什么,以及会发生。,返回,9.1.2段点设置与立即窗口,1

2、Visual Basic的模式 2中断与程序调试 3监视与监视表达式 4立即窗口,返回,1Visual Basic的模式,Visual Basic的运行有三种模式:设计模式、运行模式(Run)和中段模式(Break)。 启动Visual Basic后进入设计模式,主窗口标题栏有“设计”二字。建立应用程序的所有步骤基本上都在设计模式下完成。 执行“启动”命令后进入执行模式,Visual Basic的主窗口标题栏上的“设计”变成了“运行”。在运行模式下,Visual Basic把全部控制权都交给应用程序,可以查看程序代码,但不能修改程序代码,还可以执行“结束”命令回到设计模式。 中断模式是程序执行

3、过程的一个暂停状态,进入中断模式后主窗口标题栏上的“运行”变成了“break”.在中断模式下,可以检查、修改程序代码,也可以检查程序中变量的中间值,还可以继续执行,2中断与程序调试,Visual Basic提供段点和Stop语句,把应用程序置于中断模式下。 可以使用以下方法进入中断模式: (1在程序中使用Stop语句,程序运行到Stop语句进入中断模式; (2)在设计或中断模式下设置程序的断点; (3)程序运行时出现错误,自动进入中断模式; (4)程序运行时,按下Ctrl+Break键进入中断模式; (5)程序运行时,在菜单栏上选择“运行中断”选项进入中断模式; (6)程序运行时,单击工具栏上

4、的“中断”按钮进入中断模式。,设置断点的方法:在程序代码窗口中,将光标移到希望中断的语句上,在菜单上选择“调试-切换段点”选项,光标所在语句设置为断点。被设为断点的语句为反向显示并在其前面显示一个原点。 利用断点只能粗略的判断错误发生的位置。利用程序跟踪可以直接看到程序的执行情况和执行顺序,找到发生错误的位置。对于逻辑错误,利用断点可以跟踪到程序运行的去向。Visual Basic的跟踪方式包括逐语句执行,逐过程执行和跳出执行。 逐语句执行是每次只执行一个语句,并根据输出结果判断执行的语句是否正确。逐语句执行开始后,程序进入执行模式,执行一条语句切换到中断模式,并把下一条语句作为待执行的语句。

5、 逐过程执行与逐语句执行基本相同。逐过程执行不跟踪到过程中,即把被调用的过程当作一条语句一次执行完毕。“跳出”可以执行当前过程的饿其他部分,并在调用过程的下一行中断执行。 若想暂时避开程序的某一部分,可以通过跳出执行来实现。,3监视与监视表达式,调试程序时,一个计算可能得不道想要的结果,当某个变量或属性取特定范围内的值时,可能会现问题。许多调试问题不是由单个语句产生的,因而需要在整个过程观察变量或表达式的情况。Visual Basic自动对监视表达式进行监视。应用程序进入中断模式后,这些监视表达式出现在“监视”窗口中,可在该处观察其值。 无论何时,只要表达式的值改变或等于一个特定的值,就可把应

6、用程序设置为中断模式直接观察。例如,循环计数器达到一个特定值时,可用一个监视表达式把应用程序设置为中断模式,而不是一次一条语句执行数十次乃至数百次循环。当过程中的一个标志值改变时,都可使应用程序进入中断。 在设计或中断模式下,可添加监视表达式。方法:在菜单栏上选择“调试添加监视”选项,弹出“添加监视”对话框,在该对话框中添加监视表达式,添加监视表达式的步骤如下: 在菜单栏上选择“调试添加监视”选项,弹出“添加监视”对话框。 代码编辑器中的当前表达式将出现在“表达式”框中。如果这不是需要监视表达式,可在“表达式”框中直接输入表达式。 若有必要,设置要监视的变量的范围。如果在“上下文”中选定“过程

7、”或“添加模块”选项,则从相应的列表框中选定一个过程、窗体或模块名。 若有必要,在“监视类型”组中选定选项按钮,以确定对监视表达式的响应方式。 单击“确定”按钮,完成设置。,4立即窗口,程序进入中断模式后,将自动激活立即窗口;也可以直接在系统菜单栏上选择“试图立即窗口”选项,打开立即窗口。若中断时程序正在执行某个过程,该过程的代码窗口与立即窗口一起显示。在立即窗口中,可以直接执行Visual Basic语句,并且不影响代码窗口的程序代码。,9.2 错误处理程序设计,9.2.1应用程序错误与调试 9.2.2 Resume 语句 9.2.3 Err对象和Erl函数 9.2.4错误处理程序,9.2.

8、1应用程序错误与调试,1设置错误陷阱语句 2取消该错误捕捉功能,1设置错误陷阱语句,Visual Basic用On Error语句捕捉程序运行时的错误,以便设置错误陷阱,并利用Err对象及相关的属性、方法确定程序运行时的错误起因,以选择响应的解决措施,实现在线错误处理。 语句格式:On Error语句有3种基本格式。 格式1:On Error 格式2:On Error 0 格式3:On Error Resume Next 功能:设置或取消错误捕捉功能。 说明: 在程序中,用On Error语句语句设置的错误捕捉功能一直起作用,直到另一个On Error语句取消所设置的错误捕捉功能。在错误捕捉处

9、理程序起作用期间,一旦发生错误,程序即转向指定的行标号并执行错误处理程序。 格式1设置从指定行号开始的错误处理程序。行号可以是任意的行标号或行号,并要求与On Error语句在同一过程内。 格式2取消已设置的错误捕捉程序。在已设置错误捕捉处理程序的情况下,执行该语句将已激活的错误处理程序变成无效。 格式3指明发生运行错误时程序跳过错误继续执行,即发生错误时,不对错误做任何处理,直接跳到产生错误语句的下一个语句继续执行。若希望在程序出错时进行错误处理,必须用格式1重新设置其他错误处理,或用格式,2 取消该错误捕捉功能,例如: Private Sub Form_Load() On Error Go

10、to ErrLine If n=100 On Error Resume Next End If Exit Sub ErrLine End Sub,9.2.2 Resume 语句,语句格式:该语句有3种格式。 格式1:Resume 格式2:Resume Next 格式3:Resume 功能:该语句放在错误处理程序中,指定执行错误处理程序后继续执行的语句,以便在指定位置恢复程序的执行。 说明:该语句与Return语句类似,但只能用于错误处理程序中,即必须与On Error语句配套使用。,9.2.3 Err对象和Erl函数,Err对象含有关于运行出错时的错误信息,其属性由错误的生成者设置。该错误生成

11、着可能是Visual Basic系统,也可能是某对象,或者是程序设计者。Err对象的默认属性是Numeber。该默认属性可以直接用对象名称Err表示,所以不必修改以前Err函数或Err语句书写的程序代码。 出现错误时,Err返回错误的代码,错误代码的取值范围为132676。 Err函数返回错误语句的行号。若发生错误的程序没有行号,则Err函数总是返回0。虽然Visual Basic中也可以使用行号,但行号只是某一行的标识,但与旧版本Basic语言兼容,与程序的执行顺序无关。 只有在发生错误时,Err对象和Erl函数才返回有意义的值,通常把它们放在错误处理程序中,用来确定所发生的是什么错误,以及

12、采取什么操作纠正错误。,以下程序可以查出错误代码对应的错误信息。 Private Sub Command_Click() Dim Msg,NI,UsrErr On Error GoTo ErrHand NI=Chr(10) Msg=“请输入一个错误号查看相应错误信息” UsrErr=InputBox(Msg) Error UsrErr Exit Sub ErrHand: Msg=“错误号”& Err &“的信息是:”& NI & & Error(Err) & sgBox Msg Resume Next End Sub,9.2.4错误处理程序,应用程序运行过程中,出现错误是不可避免的,硬件出现的

13、问题或用户的误操作,都会造成运行出错,这些错误可能使程序意外的终止,一般无法使应用程序继续运行。有些错误也许不会中断程序运行,但可能使代码产生意想不到的结果。因此必须用On Error语句捕获错误并执行错误处理程序,以避免应用程序不必要的意外中断。在程序设计中,通过设置错误对象Err的各种属性,如错误号、描述等,使应用程序在错误发生时可以对错误状况作出响应或处理。,设计错误处理程序包括3个步骤: 1、设置错误捕获 当应用程序执行到On Error语句时,激活错误捕获,用 On Error语句指定错误处理程序开始的标号。当错误发生时,通知应用程序在分支点设置或激活错误捕获。当包含错误捕获的过程处

14、于活动时,错误捕获始终是激活的,即直到该过程执行Exit sub、Exit函数、Exit属性、End Sub、End函数或End属性语句时,错误捕获才停止。尽管在任一时刻任一过程中只能激活一个错误捕获,但可建立几个选择的错误捕获并在不同的时刻激活不同的错误捕获程序。,2、编写错误处理程序 错误处理程序应对所有能预见的错误都不得作出响应或处理。错误处理程序逻辑的第一步,是添加行标号,行标号标志着错误处理程序的开始。行标号应该有一个具有描述性的名称,其后必须加冒号。 基本的约定:把错误处理代码放在过程末端,该过程在紧靠行标号前方处使用Exit Sub、Exit函数或Exit属性语句。这样,如果未出

15、现错误,过程可避免行错误处理代码。 错误处理程序体包含实际处理错误的代码,通常以Select Case 或if.ThenElse语句的形式出现。程序中需要确定可能会发生什么错误,对每种错误提供响应的操作方法。例如,在“磁盘未准备好”错误的情况下,需要提示用户插盘。为了处理所有意想不到的错误,应使用else或case else语句提供选项,以对不能预测的错误作出响应。 Err对象的Number属性包含数值型的错误代码,错误代码表最新的运行错误号。借助Err对象与select case或if thenelse语句的组合,可以对出现的任何错误采取有针对性的处理和操作。,3、出错误处理程序 在错误处理

16、程序中,可以用 Resume Next语句使程序返回出错语句之后的语句。,9.3 错误处理实例,首先建立程序,这个程序的目的是要求一个整数的阶乘。当输入一个正整数时,程序首先对输入参数进行有效性检查,如果参数有效则求出阶乘并返回结果,否则提示输入参数无效,并要求重新输入。 按下面步骤建立这个程序: 运行Visual Basic6.0并建立标准工程。 单击工具栏中的Lable控件,在Form1窗体上绘制一个标签,并将其Caption属性社为“请输入(020)之间整数”。 单击工具栏中的Text控件,并在Form1窗体中绘制一个文本框,然后将其Text设置为空。 单击工具栏中的CommandButton控件,并放置在窗体中,将其Caption属性设为“计算阶乘”。 最后再放置两个标签到窗体Form1中,属性采用缺省值。 在这个程序中需要处理的事件过程只有Command1_Click。在该过程中,需要进行参数检查和进行阶乘计算。这里编写了两个函数来完成这两个功能。 函数Che

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号