




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 程序调试与错误处理 教学目的和要求: 了解VB程序错误类型及其产生原因, 掌握程序调试的方法和技巧,掌握使用错误 陷阱技术捕获错误并进行错误处理的方法。 第10章 程序调试与错误处理 10.1 VB程序错误的类型 10.2 程序调试 10.3 错误处理 本章小结 习题 九 实验十三 程序调试步骤实验 10.1 VB程序错误的类型 10.1 VB程序错误的类型 VB程序出现的错误可分为三大类:编译错误、运行错误 和逻辑错误。 1)编译错误 编译错误是由于编程人员未能正确构造程序代码而产生的 错误。编译错误主要包括语法错误和结构错误。 语法错误指:以不合法的方式将合法的符号组合在一起而 产生的错误。比如,键入的关键字不正确、遗漏了某些必 需的标点符号、括号、对象属性引用没有对象等。 结构错误指:语句结构不完整或结构交叉而引起的错误。 比如,For 语句没有Next与之对应;块If语句中包含For- Next语句,而Next在End If之后出现等情况。 10.1 VB程序错误的类型 编译错误在 Visual Basic编译应用程序或启动运行 时就会自动检测到。这需要设置系统的“自动语法检测”功 能。设置方法:“工具”菜单“选项”“编辑器”“自动 语法检测”。程序员可根据编译错误提示去改正错误。 例10.1 编译错误示例。如下图所示,程序中的循环结 构For-Next与选择结构if-End If交叉,运行时产生编译错 误。 10.1 VB程序错误的类型 3)逻辑错误 逻辑错误导致应用程序不按预期方式执行 。从语法 角度来看,应用程序的代码是有效的,在运行时也没有无 效操作,但产生了不正确的结果。这是因为代码中存在逻 辑上的缺陷而引起的。系统不能检测出逻辑错误,只有通 过测试应用程序和分析产生的结果才能检验出来。 2)运行错误 应用程序在运行时,当一个语句执行一个不能执行 的操作,就会发生运行时错误。 例如语句:Speed = Miles / Hours 语句本身的语法无错误,但变量 Hours 的值若为零,除法 就是无效操作,这种错误,必须运行应用程序才能检测到 。 10.1 VB程序错误的类型 例10.2 运行错误错误 示例。程序用于打开一个文件。运行时 ,在文本框中输入一个将要打开的文件名,若此文件不存 在,程序就会出现运行错误,如下图所示。要避免这个错 误,可在程序中加一个条件判断,若文件存在才打开。 10.2 程序调试 10.2 程序调试 VB集成开发环境提供了多种程序调试工具,主要包 括:设置断点、单步运行、监视窗口和立即窗口等,这里 主要介绍程序调试工具及调试方法和技巧。 程序调试工具栏如图所示: 启动动/继续继续 中断 结结束 切换换断点 逐语语句 逐过过程 跳出 本地窗口 调调用堆栈栈 立即窗口 监视监视 窗口 快速监视监视 10.2 程序调试 10.2.1 VB的中断模式 在VB中断模式下,可以查看、修改程序代码,也能 查看数据。进入程序中断模式有三种方式: (1)在运行状态下,执行“运行”菜单下的“中断”命令 ,或按Ctrl+Break键,即可进入中断模式; (2)在程序代码中设置断点,当程序运行到断点处就 自动进入中断模式; (3)程序运行时,由于错误的产生而自动进入中断模 式。 在中断模式下,对程序代码修改完毕后,可选择“ 运行”菜单下的“继续”、“结束”或“重新启动”命令而退出 中断模式。 10.2 程序调试 10.2.2 调试窗口 在中断模式下,可用鼠标指向要观察的变量或对象属 性,以直接显示其值,另外通过立即窗口、本地窗口、监 视窗口和调用栈窗口等,可以监视程序运行过程中变量的 变化情况。 1)立即窗口 主要用于查看变量的值。 立即窗口使用的主要方式有: (1) Debug.Print 输出列表 在程序代码中,使用DEBUG.PRINT方法,可以将输出 列表中的各项值输出到立即窗口中。 (2)立即窗口中使用Print或?语句 在立即窗口中使用Print或?语句,显示变量或对象的属 性值。 10.2 程序调试 例10.3 程序结果输出到立即窗口示例。如下图所示,使用 Debug.Print将计算阶乘函数Fact(5)执行的中间结果输出 到立即窗口中。在立即窗口中,测试变量t、i在当前断点 处的值。 10.2 程序调试 (3)用赋值语句可修改变量或对象的属性值 若当前程序运行的中间结果不正确,可以在立即窗口中 ,输入正确的中间值,以此调试后面的程序是否正确。 (4)过程或函数的测试 在主调程序调用过程或函数之前应保证过程或函数的正 确性,以提高程序的调试效率。在立即窗口中通过执行过 程或函数来实现对过程或函数正确性的测试。 2)本地窗口 本地窗口可以自动显示当前过程中所有变量及它们 的值。当程序从一个过程切换到另一过程,本地窗口的内 容会随之发生变化。 在主程序调用过程或函数之前应保证过程或函数 的正确性,以提高程序的调试效率。 例10.4 立即窗口用于改变变量的值和函数测试示例。 如下图所示。在刚进入函数Fact时,通过立即窗口改 变变量N的值为6,则Fact计算的结果720是6!,显示5! =720。进一步测试函数Fact,结果显示函数正确。 10.2 程序调试 3)监视窗口 监视窗口用于显示监视对象(变量、表达式、属性等 )在程序运行中,其值的变化情况。监视对象可利用调试 菜单中的“添加监视”命令或“快速监视”设置。 例10.5 监视窗口的使用。对例10.4中的程序,通过“添 加监视”菜单命令,加入监视项N,Fact和I,在程序运行 时,监视窗口中显示上例程序被监视的对象的有关状况 。如图所示。 10.2 程序调试 10.2.3 中断调试 中断调试指在程序代码中设置断点。程序运行到断 点处,进入中断状态,可借助调试窗口检查变量的值。 VB提供了两种设置断点的方法: 1)设置断点 “调试”“切换断点”命令;按快捷键F9;选取调试 工具栏中相应的图标;最常用的方法是用鼠标单击代码窗 口中程序行前面的断点标志栏。 2)STOP中断 在程序代码中加入STOP语句,程序运行到STOP 语句时会暂时终止程序执行,进入中断状态。 注意:程序调试完毕后,应将STOP语句删除或将其 变成注释语句,即STOP。 10.2 程序调试 例10.6 设设置断点及查查看属性值值示例。如下图图所示,程 序行设设置了断点后的呈反视显视显 示。并用鼠标查标查 看的标标 签签的Caption属性的值值。 10.2 程序调试 10.2.4 单步调试 单步调试分两种: 单步语句调试,即逐语句调试。若有过程调用,则进入 过程中再逐条语句执行。按F8键可实现。 单步过程,即逐过程调试。执行单步过程时,是一步执 行一个过程。 按组合键Shift+F8可实现。 10.2.5 跳跃调试 当发现程序某一部分有错,而又想程序跳过错误语句 继续调试后续程序,可使用跳跃调试。在中断模式下,将 光标移到想要执行的语句(跳过一些语句行),然后执行 “调试”“设置下一条语句”命令,或按快捷键Ctrl+F9,下 一条语句指针指向该行,再执行“继续”命令,程序就跳到 此处运行,从而跳过前面的语句。 10.3 错误处理 10.3 错误处理 10.3.1 错误陷井 1)错误陷阱的激活 错误陷阱用于捕获错误,它的使用有两种形式。 On Error Goto 功能:打开错误捕获功能。该语句执行后,运行中出现 错误时,将控制权转移到本语句指向的错误处理程序去执 行。该语句通常作为过程或函数的第一条可执行语句。 On Error Resume Next 功能:打开错误捕获功能。当发生错误时,转到产生错 误的下一条语句处执行。 10.3 错误处理 2)Err 对象 Err对象即错误对象,包含最近所发生的一次错误 的信息。Err 对象常用属性和方法如下: Number属性:返回出错代码,即错误ID号。 Description属性:错误描述字符串。 Source 属性:返回产生错误的应用程序,主要用于 OLE编程。 例如:当通过OLE访问Microsoft Excel时产生了错误, Err.Source属性值为“Excel.Application“ Clear方法:清除错误。 Raise方法:引发错误。使用Raise方法可以人为地产 生一个错误,主要用于测试错误处理程序或仿真错误。 语法:Err.Raise Number ,Source,Description 10.3 错误处理 3)错误处理使用的语句和函数 Err、Erl和Error$函数 Err函数:返回程序执行时的错误码。错误码为整数值 。 Erl函数:返回发生错误的语句行号,或最接近发生错误 语句的前一语句行号,常用在错误处理子程序中。 Error$(错误码)函数:返回对应错误码的错误信息 。若无错误码,则返回最后执行错误语句的错误信息;若 程序中没有错误,则返回空串。错误码介于1-32767之间 ,若错误码不是VB缺省的错误码,则返回“应用程序定义 或对象定义错误” 10.3 错误处理 Private Sub Form_Click() For k = 1 To 32767 If Error$(k) = vbKey9 Or KeyAscii = vbKey0 Then KeyAscii = 0 不是数字,清除字符 End If End Sub 10.3 错误处理 2)通用错误处理程序的创建 通用错误处理程序,是使用集中控制方法来控制和 处理各种各样的错误,并根据当前产生的错误类型,为用 户提供多种可供选择的处理方式。 设计错误处理程序的进程包括三步: 第一步:激活错误捕获 使用On Error 语句激活捕获。当错误发生时,由On Error 语句指引应用程序转入执行相应的错误处理程序。 10.3 错误处理 第二步:编写错误处理过程 在编写错误处理程序时,应对所有可预见的错误都 能做出响应。编写错误处理程序的第一步是添加行标签, 标志着错误处理例程开始,然后编写具体的错误处理代码 。Err 对象的 Number 属性值为错误代码,代表最新的运 行时错误。借助 Err 对象与 Select .Case.End Select 或 If.Then.Else.End If语句的组合,可对出现的任何错误 采取针对性的操作。 第三步:退出错误处理例程的处理 Resume 语句退出错误处理例程,将程序转移到相 应位置继续执行。 本章小结 (1)在程序设计过程中,程序出现错误是在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品质量审核与评审报告范本
- 个性化课件制作
- 难点解析人教版8年级数学上册《轴对称》单元测试试卷(详解版)
- 内蒙古能源职业学院单招《英语》考前冲刺练习附答案详解【综合卷】
- 小鹅通摄像头课件模式
- 小鸡小鸭早教课件教学
- 小镇防火安全知识培训课件
- 小小花园挖呀挖课件
- 小学生消防知识培训课件作文
- 社会交换理论视域下澜湄合作机制演进与路径创新研究
- 外科术后康复
- 口腔科主任述职报告
- 心脏骤停的急救及处理
- 营养科专案管理制度
- 达州国企考试试题及答案
- 2025四川省人力资源和社会保障厅制劳动合同书
- 2025-2030年海洋环境监测行业市场发展分析及发展前景与投资机会研究报告
- 浙江花园营养科技有限公司 年产750吨饲料级VD3油剂项目环评报告
- 渠道终端销售合同协议
- 煤矿其他从业人员培训课件
- 气管镜异物取出术护理配合
评论
0/150
提交评论