vb程序调试与错误处理初步.ppt
《vb程序调试与错误处理初步.ppt》由会员分享,可在线阅读,更多相关《vb程序调试与错误处理初步.ppt(36页珍藏版)》请在三一办公上搜索。
1、第14章 VB程序调试与错误处理初步,可选内容(时间:2次课,4学时),第14章 VB程序调试与错误处理初步,教学提示:本章主要介绍VB的程序调试技术,其中包括VB编程过程中常见的错误类型的产生和表现,以及利用VB提供的调试工具和语句对程序错误进行捕获、处理和修改的方法。VB为广大用户提供了功能强大的程序调试工具,使用户能够迅速排除编程中出现的问题。本章主要介绍:VB程序错误的种类、错误处理的方法以及程序代码调试的方法。,第14章 VB程序调试与错误处理初步,14.1 错误的种类 14.2 错误处理 14.3 代码调试 14.4 小结14.5 思考与练习,14.1 错误的种类,14.1.1 语
2、法错误 14.1.2 运行错误 14.1.3 逻辑错误,14.1.1 语法错误,语法错误是存在于代码中的语言结构方面的错误。比如,拼写错误、缺少操作对象、不符合语法规则等错误都属于语法错误。例如,我们要输入下列代码:Private Sub Form_Load()Dim i As IntegerDim j As IntegerDim sum As Integersum=0For i=1 To 100 For j=1 100 End Sub,14.1.1 语法错误,由于我们不小心将语句:For j=1 To 100书写成For j=1 100(漏掉了To),则当用户按下Enter键的时候,Visu
3、al Basic就会立刻测出这样的错误,会提示用户“缺少To”,如下图所示。,14.1.2 运行错误,运行错误是指在运行程序的时候发生的错误。这些错误在编写的过程中,因为它们符合语法规则,所以不会被识别出来,也不会在编译的时候被发现。它们往往是由于进行了某种错误的操作造成的。例如,下面一段代码:Private Sub Command1_Click()Dim number As IntegerDim total As DoubleDim aver As Doubletotal=Val(Text1.Text)number=Val(Text2.Text)aver=total/numberText3.
4、Text=averEnd Sub,14.1.2 运行错误,该程序在计算平均值时,很有可能在没有提供参数number,或者提供了不合法的值,则会产生除数为0的错误,从而引起程序的崩溃。如下图所示:,这时,用户可以单击【结束】按钮来结束程序,也可以单击【调试】按钮来发现是哪一条语句发生了错误,以便于修改。,14.1.3 逻辑错误,逻辑错误指的是程序可以执行,但就是得不到用户所希望的结果。这并不是程序语句的错误,而是由于程序设计时本身存在的逻辑缺陷而导致的。如定义了错误的变量类型,或程序中出现了不正确的循环次数或死循环等等。大多数逻辑错误不容易发觉是在哪一条语句发生的,而且错误产生的原因与产生错误结
5、果的语句之间可能隔有很多语句。因此,对于逻辑错误一般要使用单步执行和监视的方法来查找错误的根源。,14.2 错 误 处 理,对于程序中可能出现的错误都要进行处理,否则会使应用程序崩溃。但是,有的错误是用户无法避免的。例如,当光驱中没有光盘时,用户访问了光驱,这时,系统会产生一个“设备没有准备好”的错误。在Visual Basic中,允许使用错误处理方法来对可能出现的错误进行预先处理。所谓错误处理,就是提供发生错误时执行的代码,也相当于是程序运行的一部分。当一个错误发生的时候,应用程序应该可以探测到这一个错误,并且进行相应的错误处理。用户应当在可能产生错误的地方放置错误探测语句,同时,在同一个程
6、序中放置错误的处理代码。通常含有错误的探测捕捉和处理设置错误的捕捉陷阱,即在程序中可能出现错误的地方放置捕捉语句来捕获产生错误的语句。编写错误处理程序,即当程序中出现错误的时候,程序将运行用户指定的程序。退出错误处理程序,即在处理错误之后,应该恢复原来的一些参数,然后让程序继续正常地运行下去。,14.2 错 误 处 理,14.2.1 错误捕获 14.2.2 激活错误捕获功能 14.2.3 编制错误处理程序,14.2.1 错误捕获,当程序中的某行代码试图执行一项非法的操作时,将产生运行时错误(Run-Time Error)。例如,当我们的程序需要打开某个特定的文件时,如果这个文件被误删了,就会产
7、生运行时错误“file not found”(文件未找到),如下图所示。,再如,当我们的程序要从软盘中读取文件时,如果软驱中没有软盘,就会产生运行时错误“Disk not ready”(磁盘没有准备好)。,14.2.1 错误捕获,通过这些例子可以看出,运行时错误是无法避免的。但是,一旦出现运行时错误,将造成程序崩溃。因此,我们必须对可能发生的错误进行处理。许多运行时的错误只能靠用户来解决,比如插入软盘。因此,我们必须在系统发出错误之前,截获错误,在错误处理程序中提示用户采取措施,是解决问题还是取消操作。如果用户解决了问题(如插入了软盘),我们的程序就能够继续执行,如果用户选择取消操作,我们就可
8、以跳过这段程序,而继续执行后面的程序。这就是处理运行时错误的方法,我们将这个过程称为错误捕获(Error Trapping)。,14.2.2 激活错误捕获功能,在我们捕获运行时错误之前,首先要激活错误捕获功能,这项任务是由On Error语句来完成的。On Error语句共有3种格式。On Error Goto 行号 此语句的功能是激活错误捕获,并将错误处理程序指定为从“行号”位置开始的程序段。例如:Private Sub Form_Load()Dim r As VbMsgBoxResult On Error GoTo notready ChDrive A Exit Subnotready:r
9、=MsgBox(请插入软盘!,vbRetryCancel+vbCritical,缺少软盘)If r=vbRetry Then ResumeEnd Sub,14.2.2 激活错误捕获功能,这是一个典型的错误处理过程。首先,我们可以预料到在此过程中有可能出现运行时错误,因此,在过程开始时,我们使用On Error GoTo notready激活错误捕获功能,并指定从行号“notready”开始的程序段为错误处理程序(注意,行号后面要加一个冒号,但在语句On Error GoTo notready中不加冒号)。这样,当程序运行到语句“ChDrive”A“”并发生错误时,将执行行号“notready”
10、后面的语句。如果不发生错误,当执行到语句“Exit Sub”时,将退出过程。在过程退出时,错误捕获功能就自动被取消了。2.On Error Resume Next 此语句的功能是忽略错误,继续往下执行。使用这种格式的语句,它可以激活错误捕获功能,但并不指定错误处理程序,当错误发生时,不做任何处理,紧接着从发生错误语句之后的语句继续执行。,14.2.2 激活错误捕获功能,例如,如下一段代码:Private Sub Form_Load()On Error Resume Next ChDrive A FileCopy readme.txt,d:read.txtEnd Sub 这段程序的功能是拷贝“A
11、”盘中的“readme.txt”文件到“D”盘。假设当前驱动器是“C”盘,如果在执行语句“ChDrive”A“”时出错,就忽略此项操作,继续留在“C”盘。并将“C”盘当前目录下的“Readme.txt”文件拷贝到“D”盘,如果在“FileCopy”readme.txt“,”d:read.txt“”语句再出现错误,那么干脆什么都不做自动退出此过程。3.On Error Goto 0 此语句用来关闭错误捕获功能。当用户确定已经没有错误产生或者错误已经得到处理,就可以关闭错误捕获功能。要注意,错误捕获功能一旦被激活,将保持到过程结束,如果我们要在过程结束之前就关闭此功能,应使用“On Error G
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 程序 调试 错误 处理 初步
链接地址:https://www.31ppt.com/p-5451974.html