《Visual Basic程序设计》课件项目十一_第1页
《Visual Basic程序设计》课件项目十一_第2页
《Visual Basic程序设计》课件项目十一_第3页
《Visual Basic程序设计》课件项目十一_第4页
《Visual Basic程序设计》课件项目十一_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

项目十一程序调试技巧任务11.1程序设计中的常见错误类型任务11.2程序调试和排错的方法

任务11.1程序设计中的常见错误类型

任务导入

为了易于找出程序中的错误,我们将错误分为四种类型,即编辑错误、编译错误、运行错误和逻辑错误。本任务将介绍VB中的常见错误,以引起学生的注意,尽量避免错误的发生。学习目标

(1)了解使用VB编程时的常见错误。

(2)能在使用VB编程时尽量避免出错。任务实施

1.了解编辑错误

当用户在代码窗口中编辑代码时,VB会对程序直接进行语法检查,当发现程序中存在输入错误,如语句没输入完、关键字输入错误等时,VB会弹出对话框,提示出错信息,如图11.1所示。这时,用户必须单击“确定”按钮,关闭提示框,程序中出错的位置显示为红色,出错部分被高亮度现实,以提示用户进行修改。图11.1编辑错误

2.了解编译错误

编译错误是指单击了“启动”按钮,VB开始运行程序前,编译程序段时产生的错误。此类错误是由于用户未定义变量、遗漏关键字等原因造成的。这时,VB也将弹出对话框,提示出错信息,如图11.2所示。出错的位置被高亮度显示,同时VB停止编译。这时,用户必须单击“确定”按钮,关闭出错对话框,然后对出错行进行修改。图11.2编译错误

3.了解运行错误

运行错误是指VB在编译通过后,运行代码时发生的错误。这类错误往往是由于指令代码执行了非法操作而引起的,如类型不匹配、试图打开一个不存在的文件等。

例如,属性FontSize的类型为整型,若对其赋值的类型为字符串,则系统运行时将显示如图11.3所示的提示出错信息。当用户单击了“调试”按钮后,进入中断模式,光标停留在引起出错的位置,此时允许修改代码。图11.3运行错误

4.了解逻辑错误

程序运行后,如果得不到期望的结果,则说明程序存在逻辑错误。例如,运算符使用不正确、语句的次序不对、循环语句的起始值或终值不正确等。通常,逻辑错误不会产生错误提示信息,因此这类错误较难排除。这时就需要程序员仔细地阅读和分析程序,并要有一定的调试程序的经验。任务11.2程序调试和排错的方法

任务导入

为了更正程序中发生的不同错误,VB提供了广泛的调试工具。一般的调试方法是采用设置断点、插入观察变量、逐行执行和过程跟踪等手段,以在调试窗口中显示所关注的信息,或设置错误陷阱等。本任务将介绍程序调试和排错的方法和

技巧。学习目标

(1)会使用设置断点、插入观察变量、逐行执行和过程跟踪等手段排查错误程序。

(2)会使用调试窗口排查错误程序。

(3)了解设置错误陷阱排查错误程序的方法。任务实施

1.了解VB的三种模式

作为一个集编辑、编译与运行于一体的集成环境,VB的工作状态可分为三种模式:设计模式、运行模式和中断模式。为了测试和调试应用程序,用户在任何时候都应清楚地知道正处在何种模式下。

1)设计模式

在设计模式下,可以进行程序的界面设计、属性设置、代码编写等,此时标题栏显示“设计”,如图11.4所示。在此模式下既不能运行程序,也不能使用调试工具。图11.4设计模式

2)运行模式

执行“运行”菜单下的“启动”命令,或按F5键,或单击工具栏上的“启动”按钮,即可由设计模式进入运行模式。在此模式下,标题栏显示“运行”,如图11.5所示。图11.5运行模式

3)中断模式

当程序运行时,单击“运行”菜单→“中断”命令,或单击工具栏上的“中断”按钮,即可进入中断模式,如图11.6所示。此时标题栏显示“break”。当程序出现运行错误时,也可以进入中断模式。图11.6中断模式

2.插入断点和逐语句跟踪

在调试程序时,通常会设置断点来中断程序的运行,然后逐语句跟踪和检查相关变量、属性和表达式的值是否在预期的范围内。

可在中断模式下或设计模式时设置或删除断点。当应用程序处于空闲时,也可在运行时设置或删除断点,按下F9键,如图11.7所示,将在程序运行到断点语句处(该语句未执行)停下,进入中断模式。在此模式下对所关心的变量、属性、表达式的值都可以查看。图11.7插入断点和逐语句跟踪在VB中提供了在中断模式下直接查看某个变量的值的方法:把鼠标指向所关心的变量处,稍停片刻,在鼠标下方就会显示该变量的值,如图11.8所示。图11.8显示变量值

3.调试窗口

在中断模式下,除了用鼠标指向要观察的变量以直接显示其值外,还可以通过“立即”窗口、“监视”窗口和“本地”窗口观察有关变量的值。可单击“视图”菜单中的对应命令打开这些

窗口。

1)“立即”窗口

“立即”窗口是所有调试窗口中使用最方便、最常用的窗口。可以在程序代码中利用Debug.Print方法把输出送到“立即”窗口;也可以直接在该窗口使用Print语句或“?”显示变量的值,如图11.9所示。图11.9立即窗口

2)“本地”窗口

“本地”窗口显示当前过程中所有变量的值。当程序的执行从一个过程切换到另一过程时,“本地”窗口的内容会发生改变,它只反映当前过程中可用的变量。图11.10所示为“本地”窗口。图11.10本地窗口

3)“监视”窗口

“监视”窗口可显示当前的监视表达式。在此之前必须在设计阶段,利用“调试”菜单的“添加监视命令”或“快速监视”命令来添加监视表达式以及设置监视类型。在运行时,监视表达式显示在“监视”窗口,根据所设置的监视类型进行相应的显示。图11.11所示为“监视”窗口。图11.11监视窗口

4.使用OnError语句设置错误陷阱

程序员无论多么细心地调试程序,都不可能绝对避免错误的发生。在VB中常采用错误陷阱的方法防止致命错误的发生。

设置错误陷阱可以使用OnError语句,其语法形式见表11-1。错误处理程序的设计一般可分为以下三步:

(1)使用OnError语句捕获错误,并把程序流程转向由标号指示的错误处理程序段。

(2)编写错误处理代码,对所有可能预见的错误都做出相应的安排。

(3)根据错误类型可使用Resume语句重新执行出错语句,或使用ResumeNext语句执行出错语句的下一条语句,并继续运行程序。

【课堂演练】

【实例11-1】错误处理程序示例。建立一个10次的循环,每次产生两个0~9的随机整数,并输出两数的商。若出错,则执行错误处理语句,显示信息如图11.12所示;否则显示正常信息,如图11.13所示。图11.12出错结束的程序

图11.13正常结束的程序

【实现步骤】

编写代码如下:

PrivateSubForm_Load()‘窗体装入时执行的代码

Show

Randomize’初始化随机数发生器

OnErrorGoToaa‘若出现错误(b=0),则执行行标号为aa的程序段

Fori=1To10

a=Int(Rnd*10):b=Int(Rnd*10)‘产生两个0~9的随机整数

Printa/b’输出两随机数的商

Next

Print“程序正常结束!”

ExitSub‘退出过程,不执行错误处理语句

aa:

Print“分母为零了,程序结束!”

EndSub

5.使用Err对象

Err对象中包含有关于运行时错误的信息。Err对象的属性由错误的生成者来设置,这个生成者可以是VB系统,可以是对象,也可以是程序设计员。

1) Err对象的方法

在Err对象中使用Clear方法的语法格式为

Err.Clear通常,在处理错误之后使用Clear方法来清除Err对象,如在对OnErrorResumeNext使用拖延错误处理时就可使用Clear方法。每当执行下列语句时就会自动调用Clear方法:

任意类型的Resume语句。

ExitSub、ExitFunction、ExitProperty语句。

任何OnError语句。

【课堂演练】

【实例11-2】Clear方法使用示例。本示例使用Err对象的Clear方法将Err对象的数值属性重新设置为零,并将其字符串属性设置为零长度字符串。如果在代码中省略Clear方法,则每完成一次循环便会显示一次错误信息(发生错误之后),且不管程序中的计算结果是否有错误。

【实现步骤】

程序代码如下:

DimResult(10)AsInteger‘声明数组变量

’其元素容易溢出

Dimindx

OnErrorResumeNext

'将错误处理的方式设为“继续下一行”

DoUntilindx=10

'下面计算若有错误发生,便显示错误信息

Result(indx)=Rnd*indx*20000

IfErr.Number<>0Then

MsgBoxErr,,"ErrorGenerated:",Err.HelpFile,Err.HelpContext '弹出一个信息框

Err.Clear '清除Err对象的属性

Else

indx=indx+1

EndIf

Loop

2) Raise方法

若运行时发生错误,则Err对象的属性被填入明确识别错误的信息以及处理这个错误所使用的信息。为了在代码中生成运行时错误,应使用Raise方法。

Raise方法的语法格式为

Err.RaiseNumber,Source,Description,HelpFile,HelpContext

各参数的含义见表11-2。在任意形式的Resume或OnError语句之后,以及在错误处理子程序内的ExitSub、ExitFunction或ExitProperty语句之后,可将Err对象的属性重新设置为零或长度为零的字符串("")。可使用Clear方法重新明确设置E

温馨提示

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

评论

0/150

提交评论