当前位置:文档之家› VB程序调试与错误处理初步

VB程序调试与错误处理初步

Dim r As VbMsgBoxResult On Error GoTo notready ChDrive "A" Exit Sub notready: r = MsgBox(" 请 插 入 软 盘 !", vbRetryCancel + vbCritical, "缺少软盘") If r = vbRetry Then Resume End Sub
运行错误是指在运行程序的时候发生的错误。这些错误在编写的过 程中,因为它们符合语法规则,所以不会被识别出来,也不会在编译的 时候被发现。它们往往是由于进行了某种错误的操作造成的。
例如,下面一段代码: Private Sub Command1_Click() Dim number As Integer Dim total As Double Dim aver As Double total = Val(Text1.Text) number = Val(Text2.Text) aver = total / number Text3.Text = aver End Sub
14.1.2 运行错误
该程序在计算平均值时,很有可能在没有提供参数number,或者 提供了不合法的值,则会产生除数为0的错误,从而引起程序的崩溃。 如下图所示:
这时,用户可以单击【结束】按钮来结束程序,也可以单击 【调试】按钮来发现是哪一条语句发生了错误,以便于修改。
14.1.3 逻辑错误
逻辑错误指的是程序可以执行,但就是得不到用 户所希望的结果。这并不是程序语句的错误,而是 由于程序设计时本身存在的逻辑缺陷而导致的。如 定义了错误的变量类型,或程序中出现了不正确的 循环次数或死循环等等。
这就是处理运行时错误的方法,我们将这个过 程称为错误捕获(Error Trapping)。
14.2.2 激活错误捕获功能
在我们捕获运行时错误之前,首先要激活错误捕获功能,这项任 务是由On Error语句来完成的。On Error语句共有3种格式。 1. On Error Goto 行号
此语句的功能是激活错误捕获,并将错误处理程序指定为从“行 号” 位置开始的程序段。 例如: Private Sub Form_Load()
在Visual Basic中,允许使用错误处理方法来对可能出现的错误进行预先 处理。所谓错误处理,就是提供发生错误时执行的代码,也相当于是程序 运行的一部分。当一个错误发生的时候,应用程序应该可以探测到这一个 错误,并且进行相应的错误处理。用户应当在可能产生错误的地方放置错 误探测语句,同时,在同一个程序中放置错误的处理代码。通常含有错误 的探测捕捉和处理 ▪设置错误的捕捉陷阱,即在程序中可能出现错误的地方放置捕捉语句来捕 获产生错误的语句。 ▪编写错误处理程序,即当程序中出现错误的时候,程序将运行用户指定的 程序。 ▪退出错误处理程序,即在处理错误之后,应该恢复原来的一些参数,然后 让程序继续正常地运行下去。
大多数逻辑错误不容易发觉是在哪一条语句发生 的,而且错误产生的原因与产生错误结果的语句之 间可能隔有很多语句。因此,对于逻辑错误一般要 使用单步执行和监视的方法来查找错误的根源。
14.2 错 误 处 理
对于程序中可能出现的错误都要进行处理,否则会使应用程序崩溃。但 是,有的错误是用户无法避免的。例如,当光驱中没有光盘时,用户访问 了光驱,这时,系统会产生一个“设备没有准备好”的错误。
本章主要介绍:VB程序错误的种类、错误处理的 处理初步
14.1 错误的种类 14.2 错误处理 14.3 代码调试 14.4 小结 14.5 思考与练习
14.1 错误的种类
14.1.1 语法错误 14.1.2 运行错误 14.1.3 逻辑错误
For j=1 100 …… End Sub
14.1.1 语法错误
由于我们不小心将语句:For j=1 To 100书写成 For j=1 100(漏掉了To),则当用户按下Enter键的时 候,Visual Basic就会立刻测出这样的错误,会提示
用户“缺少To”,如下图所示。
14.1.2 运行错误
再如,当我们的程序要从软盘中读取文件时,如果软驱中 没准有软盘,就会产生运行时错误“Disk not ready”(磁盘没有 备好)。
14.2.1 错误捕获
通过这些例子可以看出,运行时错误是无法避 免的。但是,一旦出现运行时错误,将造成程序崩 溃。因此,我们必须对可能发生的错误进行处理。
许多运行时的错误只能靠用户来解决,比如插入 软盘。因此,我们必须在系统发出错误之前,截获 错误,在错误处理程序中提示用户采取措施,是解 决问题还是取消操作。如果用户解决了问题(如插 入了软盘),我们的程序就能够继续执行,如果用 户选择取消操作,我们就可以跳过这段程序,而继 续执行后面的程序。
14.2 错 误 处 理
14.2.1 错误捕获 14.2.2 激活错误捕获功能 14.2.3 编制错误处理程序
14.2.1 错误捕获
当程序中的某行代码试图执行一项非法的操作时,将产生运行时 错误(Run-Time Error)。例如,当我们的程序需要打开某个特定的文件 时,如果这个文件被误删了,就会产生运行时错误“ found”(文件未 找到),如下图所示。
14.1.1 语法错误
语法错误是存在于代码中的语言结构方面的错误。比 如,拼写错误、缺少操作对象、不符合语法规则等错误都 属于语法错误。
例如,我们要输入下列代码: Private Sub Form_Load() Dim i As Integer Dim j As Integer Dim sum As Integer sum = 0 For i = 1 To 100
第14章 VB程序调试与错误处理初步
可选内容(时间:2次课,4学时)
第14章 VB程序调试与错误处理初步
教学提示:本章主要介绍VB的程序调试技术,其 中包括VB编程过程中常见的错误类型的产生和表 现,以及利用VB提供的调试工具和语句对程序错 误进行捕获、处理和修改的方法。VB为广大用户 提供了功能强大的程序调试工具,使用户能够迅 速排除编程中出现的问题。
相关主题