程序调试的主要任务查找程序的错误和排除错误本章主要内.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:16 大小:296KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

程序调试的主要任务查找程序的错误和排除错误本章主要内.ppt

程序调试的主要任务查找程序的错误和排除错误本章主要内.ppt

预览

免费试读已结束,剩余 6 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

程序调试的主要任务:查找程序的错误和排除错误本章主要内容三类错误类型:编译错误,逻辑错误和运行错误1.编译错误编译错误是指在程序编译过程中出现的错误。通常是由于不正确书写代码而产生的。如:关键字写错,遗漏标点符号,括号不匹配等。举例:Foort=1To1002.运行错误运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。举例(“下标越界”):DimD(20)AsInteger,kAsIntegerFork=1To30D(k)=k*KNextk3.逻辑错误逻辑错误使程序运行时得不到预期的结果。这种程序没有语法错误,也能运行,但却得不到正确的结果。例如,在一个算术表达式中,把乘号“*”写成了加号“+”,条件语句的条件写错,循环次数计算错误等例如,要求10!,若采用:PrivateSubForm_Load()DimtAsIntegerFori=1To10t=t*iNextiShow:PrinttEndSub运行程序时输出的结果是0通常,调试程序过程中所花的大部分时间和精力都在逻辑错误上三种工作模式:设计模式、运行模式和中断模式1.设计模式在设计模式下,可以建立应用程序的用户界面,设置控件的属性,编写程序代码等2.运行模式在运行模式下,可以测试程序的运行结果,可以与应用程序对话,还可以查看程序代码,但不能修改程序3.中断模式在中断模式下,可以利用各种调试手段检查或更改某些变量或表达式的值,或者在断点附近单步执行程序,以便发现错误或改正错误程序调试一般包括静态检查和动态检查9.3.1静态检查与动态检查静态检查程序的基本方法是逐行逐句地读程序,弄清楚每条语句的作用,预见每条语句和模块的执行结果,判断是否与预期结果相一致,这就是静态检查,也称人工检查。静态检查无误后,就可以进行更有效的动态检查。通过上机调试来发现错误称为动态检查。动态检查的基本方法是输入一组典型的数据来运行程序。程序对这些数据处理结果应是已知的,通过运行后实际结果和预想结果相比较,可以判断程序的正确性使用“调试”菜单或“调试”工具栏1.切换断点“切换断点”按钮用来设置断点2.逐语句逐条语句执行程序,每执行一条语句后就返回中断模式如果执行的是过程调用的代码(如Call),“逐语句”操作也会跟踪到被调过程中继续一条语句一条语句的执行3.逐过程逐过程执行是以整个函数或过程为一个整体,一次执行。逐过程与逐语句一样,能够一条语句一条语句地执行代码。把被调用的函数或过程当作一个语句来看待例9.1运行以下的窗体装载事件过程:PrivateSubForm_Load()Dima%a%=5:a=5.4c=1/(a-a%)EndSub运行时出错,消息框提示发生“除数为零”的错误。单击消息框中的“调试”按钮,即可进入中断模式,VB在代码窗口中用箭头指示发生错误的语句“C=1/(a-a%)”。在立即窗口中键入以下命令来检查变量的值:?a,a%´?是Print的简写出错前变量a的当前值为整数5,而不是5.4,故发生了“除数为零”的错误对于某些可预见的错误,可以利用VB的错误处理程序捕获它,对其进行适当的处理,并使程序继续执行。这样就能够使开发的软件具有更强的适应性。9.4.1错误处理的步骤(1)利用Err对象记录错误的类型、出错原因等。(2)强制转移到用户自编的“错误处理程序段”的入口。(3)在“错误处理程序段”内,根据具体错误进行处理,如果问题有解决方法,则在处理后返回原程序某处继续执行,否则,停止程序执行Err对象是全局性的固有对象,用来保存最新的运行时错误信息,其属性由错误生成者设置1.主要属性(1)Number属性:数值。范围为0~65535,保存错误号(2)Source属性:字符串。指明错误产生的对象或应用程序的名称(3)Description属性:字符串。用于记录简短的错误信息描述2.常用方法(1)Clear方法:用于清除Err对象的当前属性值。(2)Raise方法:产生错误,用于调试错误处理程序段。例如,执行语句Err.Raise55将产生55号运行时错误,即“文件已打开”错误使用OnError语句可以捕获错误,其语法格式如下:OnError标号通常,该语句放置在过程的开始位置。在程序运行过程中,当该语句后面的代码出错时,则程序就会自动跳转到标号所指定的程序行去运行标号所指示的程序行通常为错误处理程序段的开始行一个使用错误处理的示例:OnErrorGoToErrLine‘以后出错时转移至ErrLine...ErrLine:‘标号...Resume‘返回语句当指定的错误处理完成后,应该控制程序返回到合适的位置继续执行。返回语句Resume有