第9章 调试和错误处理课件_第1页
第9章 调试和错误处理课件_第2页
第9章 调试和错误处理课件_第3页
第9章 调试和错误处理课件_第4页
第9章 调试和错误处理课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章程序调试与公布发行

本章目的:通过本章学习了解和掌握有关VB程序调试、发布应用程序的方法。

第9章调试和错误处理第9章程序调试与出错处理9.1错误类型和程序模式9.2程序调试9.3捕获错误及处理

9.3.1Err对象

9.3.2捕获错误

9.3.3设计错误处理程序9.4程序发布

第9章调试和错误处理9.1错误类型和程序模式调试:在应用程序中查找并修改错误的过程称之为调试。

1.错误类型VisualBasic应用程序中出现的错误分为三类:编译错误、运行时错误和逻辑错误。第9章调试和错误处理9.1错误类型和程序模式(1)编译错误是指在程序编译过程中出现的错误。产生原因:通常是由于不正确书写代码而产生的。例如关键字写错、遗漏标点符号等。

VisualBasic利用自动语法检查功能找出有语法错误的语句,帮助用户纠正语法错误。自动语法检查是在“工具/选项/编辑器”中设置,设置好自动语法检查功能后,只要在代码窗口中出现一个有语法错误的语句,当将光标移到其它语句行时就会立即显示错误提示信息。如图所示。第9章调试和错误处理9.1错误类型和程序模式第9章调试和错误处理9.1错误类型和程序模式(2)运行时的错误是指应用程序在运行期间执行了非法操作所产生的错误,例如除法运算中除数为零,打开文件时文件没找到,访问磁盘时驱动器中无盘等。例9.1:下标越界错误

PrivateSubCommand1_Click()DimA(10)asIntegerDimIasInteger第9章调试和错误处理9.1错误类型和程序模式

ForI=0to20A(I)=INextEndSub如图所示第9章调试和错误处理

9.1错误类型和程序模式第9章调试和错误处理9.1错误类型和程序模式(3)逻辑错误当应用程序未按预期方式执行时,就会产生逻辑错误。例9.2某程序如下:PrivateSubCommand1_Click()DimsummberAsIntegerDimIAsIntegerForI=0to100summber=sumber+INextPrintsummberEndsub(变量名写错)第9章调试和错误处理9.1错误类型和程序模式2.应用程序的模式有三种模式:设计模式,运行模式和中断模式。(1)设计模式启动VisualBasic6.0后就进入设计模式。功能:设计窗体布局、绘制控件、编写代码、设计并查看属性等。另外还可以在代码窗口中设置断点,创建监视表达式,但不能在设计模式下使用调试工具。

第9章调试和错误处理9.1错误类型和程序模式(2)运行模式单击工具栏中的启动按钮或者选择“运行”菜单中的“启动”选项,都可以进入运行模式。功能:同应用程序交换信息,但不能修改程序。(3)中断模式功能:分析应用程序的当前状态并修改程序代码,并且所有的调试工具都是在中断模式下运行的。第9章调试和错误处理9.1错误类型和程序模式进入中断模式有几种方式:在设计模式下通过设置断点或者使用“stop”语句将应用程序置于中断模式选择“运行”菜单中的“中断”选项,或者单击“中断”按钮将应用程序置于中断模式按下Ctrl+Break键来引导程序由运行模式切换到中断模式。应用程序在运行时产生错误,也可以自动切换到中断模式。第9章调试和错误处理9.2程序调试是指在应用程序中查找并修改错误的过程。1.调试工具调试工具有:切换断点、逐语句、逐过程、跳出,本地窗口、立即窗口、监视窗口、快速监视和调试堆栈。通过“调试”菜单或调试工具栏可以获得全部调试工具。如图所示。第9章调试和错误处理9.2程序调试第9章调试和错误处理9.2程序调试(1)切换断点运行一个程序时,遇到具有断点的代码会中断应用程序的执行。断点设置位置:通常断点被设置在代码中被怀疑可能会出问题的区域,断点可以在中断模式或设计模式下设置。设置断点的方法:通常是在代码窗口中,在要设置断点的那一行代码的左边空白区单击鼠标左键设置。如图所示。第9章调试和错误处理9.2程序调试第9章调试和错误处理9.2程序调试设置断点后,VisualBasic将以粗体突出显示设定行,并在该行前面显示一个黑色(或红色)圆点符号。(2)逐语句:逐语句执行就是一条语句一条语句的执行代码,通过查看应用程的窗体或调试窗口来判断这条语句是否正确。如果执行的代码是过程调用,也会跟踪到被调用过程中继续一条语句一条语句的执行。(3)逐过程:逐过程执行就是以整个函数或过程为一个整体,一次执行下去。第9章调试和错误处理9.2程序调试逐过程与逐语句的相似之处:也是一条语句一条语句的执行代码。不同之处是:当执行的代码是过程调用时,逐语句会跟踪到被调用过程中,而逐过程不会跟踪到被调用过程中,它把被调用过程作为一个整体一次执行过去。第9章调试和错误处理9.2程序调试(4)跳出:当用逐语句方法跟踪进入过程或函数中,如果发现过程中的语句没有问题,可以单击“调试”工具栏的“跳出”按钮,从当前的过程中跳出,去执行过程调用者的下一条语句。(5)本地窗口:用户在调试程序时可以利用“本地”窗口显示当前过程中所有变量的值。当程序的执行从一个过程切换到另一个过程时,“本地”窗口的内容会发生改变,它显示的是当前过程中可用的变量。如图所示。第9章调试和错误处理9.2程序调试第9章调试和错误处理9.2程序调试(6)立即窗口功能:可以检查某个属性或者变量的值,还可以执行单个的过程,对表达式求值,或为变量或属性赋值等。显示立即窗口的方法:单击“调试”工具栏上的“立即窗口”按钮。如图所示。第9章调试和错误处理9.2程序调试第9章调试和错误处理9.2程序调试在应用程序中输出信息到立即窗口的方法:在print方法前加上Debug即可。例如:var=9ption=“演示程序”(7)监视窗口功能:对用户定义的表达式进行监视。

监视表达式设置方法:在监视窗口中单击鼠标右键,从弹出的快捷菜单中选择所需的功能。监视表达式可以在监视窗口中添加、删除或重新编辑。如图所示。

第9章调试和错误处理9.2程序调试第9章调试和错误处理9.2程序调试(8)快速监视功能:检查那些没有在监视窗口中定义的属性、变量或表达式的值。方法:在代码窗口中选中要进行快速监视的表达式,然后单击调试工具栏的“快速监视”按钮(9)调用堆栈功能:显示所有活动过程调用的一个列表。活动过程调用:所谓活动过程调用,就是应用程序已启动但尚未完成的过程。第9章调试和错误处理9.2程序调试例9.3完成求1---5这5个数的阶乘,并且将这5个数的阶乘分别存放到数组a(1)---a(5)的5个元素中。操作步骤如下:(1)新建工程并在窗体上添加一个CommandButton控件。将CommandButton控件的Caption属性设置为“计算”。第9章调试和错误处理9.2程序调试(2)编写应用程序代码PrivateSubCommand1_Click()Dima(5)AsIntegerDimk,oAsIntegerFork=1to5a(k)=factor(k)NextForo=1to5Printa(0)NextEndSub第9章调试和错误处理9.2程序调试Functionfactor(xAsInteger)AsIntegerDimi,tAsIntegert=1Fori=1toxt=t*iNextfactor=tEndFuction

第9章调试和错误处理9.2程序调试(3)运行该程序,并单击“计算”按钮。运行结果如图所示。第9章调试和错误处理9.2程序调试从运行结果可以看出,结果是不正确的,采取如下步骤检测参数传递是否发生错误。①打开代码窗口设置断点。将断点设置在发生函数调用的语句。即将a(k)=factor(k)语句设置为断点位置。②设置断点后,重新运行应用程序。单击“计算”按钮,程序在断点处中断运行,进入中断模式。如图所示。

第9章调试和错误处理第9章调试和错误处理9.2程序调试③打开调试工具栏、本地窗口和立即窗口,用于监视程序的运行。如图所示。第9章调试和错误处理第9章调试和错误处理9.2程序调试④单击调试工具栏上的“逐语句”按钮,让程序逐句执行。利用“逐语句”工具逐步运行被调用函数factor,同时观察每个变量的变化情况。经认真分析后,发现被调用函数factor没有出现错误。⑤当流程回到Command1_Click()中时,我们利用立即窗口显示一下a(k)的值。显示为1,结果正确。⑥经过上述跟踪检测,发现前面的语句、函数及参数没有错误。那么错误一定在Click事件过程中的For语句中,也就是Printa(0)语句。即将o写成了0。第9章调试和错误处理9.3捕获错误及处理

9.3.1Err对象错误处理程序的功能:用于处理那些可预见但却无法避免的运行时错误。Err对象主要用于保存最新的运行时错误信息。1.Err对象的常用属性①Number属性为数值类型,记录错误号②Source属性为字符串,记录错误产生者的工程名称。③Description属性为字符串,记录简短的错误信息描述。

第9章调试和错误处理

9.3.1Err对象2.Err对象的常用方法(1)Clear方法:清除Err对象的当前属性值。Err对象的属性值在执行了Resume语句或OnError语句后将会被清除。也可以利用Clear方法清除。语句格式为:Err.Clear(2)Raise方法:用于产生错误,有助于调试错误处理程序。Raise语句的常用形式为:Err.RaiseNumber,Source,Description

第9章调试和错误处理

9.3.1Err对象(2)Raise方法参数说明:①Number数值型,指定错误号,范围为0~65535②Source:字符串,指定产生错误的对象,可选项③Description:字符串,错误信息的简短描述,可选项例如:模拟产生驱动器无盘错误Err.Raise71,“project1”,“disknotready”

第9章调试和错误处理9.3.2捕获错误使用捕获错误可以获得错误信息,并调用指定代码处理错误,然后继续执行程序。使用OnErr语句捕获错误,其语法结构为:

OnErrorGoto标号通常该语句放在过程或函数的开始位置。如果在过程中激活了错误捕获,只有当过程结束时才停止。如果需要在过程执行中停止错误捕获,可以利用如下语句:

OnErrorGoto0执行该语句后,当前过程立即丧失错误捕获功能。

第9章调试和错误处理9.3.3设计错误处理程序设计错误处理程序一般包括三步:1.设置错误捕获使用Error语句激活捕获,并指引应用程序跳转到标记着错误处理例程开始的标号处。2.编写错误处理程序3.退出处理程序当指定的错误处理完成后,应该指引程序跳转到合适的位置继续执行。Resume语句用于退出错误处理程序,Resume语句有三种用法:①Resume②ResumeNext③Resume标号第9章调试和错误处理9.3.3设计错误处理程序例9.4设计错误处理程序。

PrivateSubCommand1_Click()DimfnameAsStringDimnumAsIntegerDimstrAsStringOnErrorGotoErr1‘设置捕获错误

fname=“a:\test.dat”Printdir(fname)Exit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论