《程序调试》PPT课件

上传人:san****019 文档编号:16087200 上传时间:2020-09-18 格式:PPT 页数:28 大小:203.61KB
返回 下载 相关 举报
《程序调试》PPT课件_第1页
第1页 / 共28页
《程序调试》PPT课件_第2页
第2页 / 共28页
《程序调试》PPT课件_第3页
第3页 / 共28页
点击查看更多>>
资源描述
第 7 章 程序调试,7.1 错误类型 7.2 程序调试 7.3 程序调试示例 7.4 错误处理,1语法错误(Syntax Error) 语法错误是由于程序代码错误引起的。 例如,语句关键字拼写错误或遗漏了必要的标点符号,分支结构或循环结构语句的结构不完整或不匹配,括号不匹配等等。这一类错误出现时,VB的内部编译器会检查出来,并出现相应的语法错误提示框,提示改正错误。 在VB集成开发环境中,可以设置自动语法检查功能。,7.1 错误类型,2运行错误(Run Time Error) 运行错误是指并没有出现语法错误,而是在程序的运行过程中,执行了非法操作而导致应用程序执行中断。 例如,用LoadPicture装载图形文件时,若指定的图形文件不存在,除法运算中除数为0等。这类错误只有在程序运行时才能被发现。出现这类错误时,系统将中止程序的运行,显示相应的信息。,3逻辑错误(Logic Error) 逻辑错误是指程序既没有语法错误也没有运行错误,而是由于程序代码未能实现预定的处理要求而导致了错误的运行结果。 产生这类错误的原因很多,例如算法不正确、变量没有初始化、运算符使用不正确、循环条件错误等。减少这类错误的办法是积累编程经验,养成良好的程序设计风格,使用结构化、模块化的程序设计方法,并提高程序的可读性。这样既可以减少程序的出错概率,增加程序的可靠性和可维护性,又提高了程序的质量并且方便调试。,7.2 程序调试,7.2.1 应用程序的工作模式,1设计模式(“设计”) 用户创建应用程序的大部分工作是在设计模式下完成的。在此模式下,用户可以设计窗体、绘制控件、编写代码,并使用“属性”窗口来设置或查看属性值。此时,可以设置断点和创建监视表达式,但不能运行代码或使用调试工具。 2运行模式(“运行”) 应用程序运行时即进入运行模式。此时可以查看应用程序的工作状况,但不能直接修改代码。 3中断模式(“Break”) 中断模式,指应用程序没有运行结束而被中止。此时可以查看并修改代码、检查或修改数据,也可以选择重新启动应用程序、结束运行或从中止处继续运行。,进入中断模式的方法很多,常用的几种途径有: (1) 在代码中插入Stop语句,当程序运行到该语句处就会停下来,进入中断模式。调试结束以后,再删除所有的Stop语句。 Stop语句的使用格式为: Stop (2) 在代码窗口中,把光标移到要设置断点的那一行,选择“调试”菜单中的“切换断点”命令(或按下快捷键F9)。 (3) 在代码窗口中,设置断点。见7.2.3节。 (4) 在程序运行时,单击工具栏上的“中断”按钮,或选择“运行”菜单中的“中断”,命令,或按Ctrl+Break键。 (5)当程序运行出现错误时,也会自动切换到中断模式。,7.2.2 调试工具,调试工具栏:专门用于程序调试,表7 1 调试工具的用途,7.2.3 跟踪调试,1切换断点 “断点”通常安排在程序代码中能反映程序执行状况的部位。VB程序一般都由若干个过程组成。在某些过程中设置断点,就可对相关的过程进行跟踪检查,从而保证程序每个组成部分的正确性。所以,在程序中设置断点,是检查并排除逻辑错误和比较复杂的运行错误的重要手段。 四种设置断点的方法 : (1)使用“调试”菜单中的“切换断点”命令; (2)直接单击“调试”工具栏上的“切换断点”按钮; (3)用鼠标单击“代码编辑器”窗口左侧空白区; (4)是直接按功能键“F9”即可。,2逐语句 逐语句方式就是每次执行一条语句,即单步调试。在每次执行一条语句之后,通过观察应用程序的输出及界面的变化,或通过调试窗口观察变量的变化,来分析和判断该语句是否正确,从而查找出错的原因和位置,以便进行相应的修改。 选择“调试”菜单的“逐语句”命令,或者单击“调试”工具栏的“逐语句”按钮,也可以直接按F8键,就可以进入逐语句方式执行。,3逐过程 选择“调试”菜单的“逐过程”命令,或者单击“调试”工具栏的“逐过程”按钮,也可以直接按Shift+F8键,就可以进入逐过程方式执行。 逐语句方式和逐过程方式的区别是:逐语句方式一次只能执行一条语句,如果当前语句是过程调用语句,则逐语句方式将进入该过程并执行该过程中的第一条语句。逐过程方式每执行一次,或是执行一条语句或是执行一个过程,这与当前语句的内容有关。如果当前语句是一条普通语句,则逐过程方式和逐语句方式是一样的;如果当前语句是一条过程调用语句,则逐过程方式是一次执行完该过程,然后回到当前过程的下一条语句。,4跳出 当使用逐语句方式执行,进入被调用过程以后,如果不想执行该过程的全部代码,选择“跳出”可以立即回到调用该过程的语句的下一条语句。,7.2.4 使用调试窗口,调试窗口是VB的重要调试工具,在逐语句运行时可用调试窗口监视表达式和变量的值。有三个调试窗口:本地窗口、立即窗口和监视窗口。 1本地窗口 “本地”窗口可显示当前过程所有局部变量的当前值(如图)。 第一行的Me表示当前窗体,用鼠标单击Me前的加号,打开窗体中各个控件对象的属性,即可查看各个属性的当前值。,2立即窗口 在立即窗口,可以输入可执行代码并立即执行而得到结果,如图所示。立即窗口也可以在程序进入中断模式时,显示代码中正在调试的语句所产生的信息,以便分析和发现问题。,在立即窗口中,有两种方法可获得程序中需要查找的参数的值。 (1) 直接在立即窗口输入Print方法 当程序进入中断模式时,可以打开立即窗口或切换到立即窗口来查看数据。键入: Print参数名 或 ? 参数名 就可获得当前程序中该参数的值。 (2) 在应用程序中使用Debug.Print语句 Debug是VB提供的标准系统对象,通过该对象的Print方法可以将调试信息直接输出到立即窗口。例如,在例7.1的程序中就有语句: Debug.Print a(i); 这样也可以不必中断程序,在应用程序运行的同时,在立即窗口观察查看的数据。除了可以在立即窗口输出变量或属性值外,也可以在立即窗口给变量或属性赋新值。,3监视窗口 监视窗口用于查看指定表达式的值。指定的表达式称为“监视表达式”。监视表达式在设计模式时设置,选择“调试”菜单中的“添加监视”命令,出现如图7.6所示对话框。 在“表达式”中输入要监视的表达式或参数名,在“上下文”区域中选择参数或表达式所在的过程和模块名,然后在“监视类型”中选择: (1) 监视表达式:监视表达式是否正确。 (2) 当监视值为真时中断:当监视表达式的值为“True”时产生中断。这时,监视表达式也称为中断表达式。 (3) 当监视值改变时中断:当监视表达式的值或参数的值发生变化时产生中断。 为了访问监视窗口,可选定“视图”菜单中的“监视窗口”命令,或通过调试工具栏打开监视窗口,如图7.7所示。,7.3 程序调试示例,例7.1下面程序的功能是把一个正整数序列重新排列。新序列的排列规则是:奇数排在系列左边,偶数排在序列右边,排列时,奇、偶数依次从序列两端向序列中间排放。,Option Explicit Option Base 1 Private Sub Form_Click() Dim a(10) As Integer, i As Integer, j As Integer Dim b(10) As Integer, k As Integer For i = 1 To 10 a(i) = Int(Rnd * 100) + 1 Debug.Print a(i); Next i Debug.Print j = 1: k = 5,For i = 1 To 10 If a(i) Mod 2 = 0 Then b(j) = a(i) j = j + 1 Else b(k) = a(i) k = k + 1 End If Next i For i = 1 To 10 Debug.Print b(i); Next i End Sub,调试过程如下: 1分析程序结构 程序在声明部分声明了两个数组,显然数组a用于存放原序列,数组b用于存放新生成的序列。程序中采用了三个For循环,第一个For循环的功能是利用随机函数生成10个随机数,存放到a数组,作为原序列。第二个For循环的功能是对原序列重新排列。第三个For循环的功能是输出排列后的新序列。 2运行程序,观察初步执行结果 由于程序的输出采用Debug.Print的形式,所以输出结果是在立即窗口中,如图所示。,3在程序中设置断点,如图所示。,4运行程序。程序在执行到断点时停止,此时循环只执行了一次,打开本地窗口,如图所示。,7.4 错误处理,7.4.1 错误对象(Err),Err是VB提供的用于错误捕捉的对象,可根据其属性来实现错误的捕捉和处理。 1主要属性 (1) Number属性 本属性用于返回当前错误的错误代码,其值为整型数,范围为065535。VB可以标识80多种错误,表7 2列出了部分错误代码及其说明。,表7 - 2部分错误代码及其说明,(2) Source属性 返回错误产生的对象或应用程序的名称。本属性值为字符串类型,如果当前应用程序没有发生错误,则返回空字符串。 (3) Description属性 返回与当前错误代码相对应的错误信息描述。本属性值为字符串类型。 2常用方法 Clear方法本方法用于清除Err对象的当前属性值。,7.4.2 设置错误陷阱,在应用程序代码中,使用On Error语句可以设置错误陷阱。其语法格式如下: On Error Goto标号|Resume Next 其中,标号是以字母开头的任意字符序列,它必须与本语句处于同一过程中。,设置错误陷阱有两种用法: (1)On Error Goto标号 通常,该语句放置在过程的开始位置。在程序运行过程中,当该语句后面的代码出错时,程序会自动跳转到标号所指定的程序行去运行。标号所指示的程序行通常为错误处理程序段的开始行。 (2)On Error Resume Next 当程序出错时,忽略该错误,继续执行该语句的下一条语句。,7.4.3 退出错误处理语句,当指定的错误处理完成后,应该控制程序返回到原程序中合适的位置继续执行。返回语句Resume有三种用法: (1) Resume 程序返回到出错语句处继续执行。 (2) Resume Next程序返回到出错语句的下一语句。 (3) Resume标号程序返回到标号处继续执行。,7.4.4 错误处理的步骤,使用VB错误调试工具进行错误处理的基本步骤是: (1) 设置错误陷阱。 (2) 利用错误对象(Err)记录错误的类型、出错原因等。 (3) 强制转移到用户自编的“错误处理程序段”的入口。 (4) 在“错误处理程序段”内,根据具体错误进行处理。如果有解决方法,在处理后返回原程序某处继续执行;否则,停止程序执行。 例7.2错误处理程序示例。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!