首页 理论教育 VisualBasic程序设计:程序错误类型解析

VisualBasic程序设计:程序错误类型解析

时间:2023-11-25 理论教育 版权反馈
【摘要】:在Visual Basic中,由于系统有自动语法检查机制,因此这类情况能够在编程过程中及时改正。一般来说,在程序代码的编辑阶段,Visual Basic会及时对代码语句进行语法检查。当检查到上述语句不符合语法规定发生语法错误时,Visual Basic系统会给出编译错误提示信息,并对错误原因做出概要说明。但可能在程序运行中出现运算错误或错误的运行结果。这类逻辑错误十分隐蔽,不易被发现,因此是程序调试的重点,也是难点。

VisualBasic程序设计:程序错误类型解析

任何一个程序开发设计出来后,都有可能会出现以下3种类型的错误

1.语法错误

编辑指令代码时产生的语法错误会引起系统的编译错误,所以有时也把这种情况称为编译错误。这种错误的发生,有可能是编程人员对程序设计语言系统的语法规则不熟悉引起的,也有可能是在编写程序过程中,输入指令语句时键盘误操作引起的,例如遗漏某些必要的标点符号函数调用时缺少参数、表达式中的括号不匹配、输入某些标点符号时误将中文符号作为西文符号使用等。在Visual Basic中,由于系统有自动语法检查机制,因此这类情况能够在编程过程中及时改正。

例如,下面语句中有语法错误,将会引起编译错误,运行后,系统会弹出如图2-5所示的提示框。

978-7-111-49659-5-Chapter02-32.jpg

图2-5 无效字符

978-7-111-49659-5-Chapter02-33.jpg

这里是Print语句中的双引号有输入错误,这里输入的中文全角符号,而正确的是用英文半角符号。一定要牢记,在代码窗口中,所有的符号都必须是半角的,只有作为字符串时才可以使用全角符号。

例如,如果把上面语句改成Print"“欢迎使用Visual Basic!”"就没有问题了,因为最外面一层双引号为半角,而内层的全角双引号已经不是Visual Basic的格式符,而是输出的内容了。可以推论,只要最外层是半角双引号,在其中的任何内容都是合法的。

又如:

978-7-111-49659-5-Chapter02-34.jpg

这里因为缺少右括号,导致括号不匹配。一般来说,在程序代码的编辑阶段,Visual Basic会及时对代码语句进行语法检查。当检查到上述语句不符合语法规定发生语法错误时,Visual Basic系统会给出编译错误提示信息,并对错误原因做出概要说明。单击出错信息框中的帮助按钮,可以得到这条指令或语句的语法说明或错误解决办法说明,如图2-6所示。当然需要预先安装上MSDN帮助文件,这个功能才能使用。

2.运行错误

运行错误也叫实时错误。如果语句执行了无法完成的任务,就会出现这类错误。例如,在除法运算中作为除数的变量数值为零、变量数据的类型不匹配、打开的文件找不到、磁盘空间不足等。这类错误,系统的语法检查机制不会发现,只有运行程序后才会出现相应的提示或者表现出来。

例如窗体上有一个名称为Text1的文本框,要读取其中的数据到变量C中,但是错误写成:(www.xing528.com)

978-7-111-49659-5-Chapter02-35.jpg

运行时系统会弹出如图2-7所示的提示框。这是初学者最容易出现的一个错误。要避免这种错误非常简单,例如1.3.2节中所讲对象属性的使用方法,在代码窗口中,当输入“Text3.”后,系统会出现自动输入列表,列表中列出该对象的所有属性和方法。如果没有出现列表,就说明Text3不存在,窗体上没有名称为Text3的对象,这时需要回到窗体设计器检查该文本框的名称。

978-7-111-49659-5-Chapter02-36.jpg

图2-6 缺少右括号

978-7-111-49659-5-Chapter02-37.jpg

图2-7 缺少对象

例如,下面程序段在编辑过程中不会发生编译错误,但运行时就会出现如图2-8所示的除数为零错误提示。因为作为除数的变量i最后变成零,产生了运行错误。

978-7-111-49659-5-Chapter02-38.jpg

978-7-111-49659-5-Chapter02-39.jpg

图2-8 除数为零

出现运行错误后,单击“调试”按钮,系统会自动进入代码窗口,定位到问题代码所在的行,这样对查找错误很有帮助。

3.逻辑错误

编写程序时,所有语句都正确输入了,并不一定代表程序就是正确的。因为还可能发生算法逻辑错误。这类错误因为没有违反Visual Basic系统的语法规则,在编程过程中,系统的语法检查机制不会察觉,因此不易被发现。但可能在程序运行中出现运算错误或错误的运行结果。

例如,运算符号的使用出现差错,该用“+”号却用成了“−”号,没有注意运算符号的优先级等运算规则而使得运算结果出现偏差,以及对控件的绑定发生错位等。还有可能是解决问题的方法存在漏洞,或者在从算法转换为计算机代码描述的过程中出现问题等。这类逻辑错误十分隐蔽,不易被发现,因此是程序调试的重点,也是难点。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈