版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
错误处理程序调试文献操作第6章错误处理和文献操作1/446.1错误处理错误种类:语法错误、运行错误、逻辑错误语法错误(Syntaxerrors):不符合VB语法错误,如关键字犯错、非法参数等。运行错误(Run-timeerrors):超出了程序控制范围,如变量范围范围溢出、文献没有找到等。VB允许你跟踪这样错误,并努力改正它们。逻辑错误(Logicerrors):最难发觉,带有逻辑错误程序能够运行,但运行成果一般是错误。VB调试器有助于发觉这种错误。减少错误方式: 认真设计应用程序,设计时间越长,调试所需时间就越少。 适度使用程序注释 对变量、对象及过程使用一致、故意义名称。2/446.1.1跟踪运行错误并处理它针对:运行错误跟踪错误办法:使用关键字OnError,语法如下:OnErrorGoToerrlabel含义:此行下面语句段中假如出现运行时错误,将跳到errlabel标签处执行。3/446.1.2错误处理框架SubSubExample() . .[Declarevariables,...] .OnErrorGoToHandleErrors‘错误跟踪开始
. .[Procedurecode]‘在执行这段代码过程中出现任何错误时,程序都将跳到HandleErrors处开始执行
.ExitSubHandleErrors:
. .[Errorhandlingcode]‘根据错误类型,选择处理办法
.EndSub4/446.1.3常用错误处理函数和过程OnErrorGoTo0:假如在过程中想关闭错误跟踪,则能够使用此语句对象Err属性Number:表达与目前错误相对应错误号。Err.Raise错误号:模拟一种错误号,表达运行错误发生,目标是为了测试过程错误处理功能。Err.Clear:将Err对象之数值属性重新设置为零,并将其字符串属性设置为零长度字符串。
函数Error(错误号):根据参数“错误号”返回一种字符串来描述对应错误5/446.1.4Resume语句功能:当错误被跟踪并采取一定措施后,程序执行流程必须返回到应用程序,这种控制是通过Resume语句实现。Resume表达形式:Resume:重新执行引发错误语句,这也许比较危险,由于假如错误没有被正确处理,也许会出现死循环。ResumeNext
:程序将从出现错误语句下一条语句开始执行Resume标号:程序将从标号所批示语句开始执行6/446.1.5一般错误处理过程:HandleErrors:SelectCaseMsgBox(Error(Err.Number),vbCritical+vbAbortRetryIgnore,"ErrorNumber"+Str(Err.Number))CasevbAbort
ResumeExitLineCasevbRetry‘实际应用程序中在这个位置需要添加修复错误语句
ResumeCasevbIgnore
ResumeNextEndSelectExitLine:ExitSub向顾客提供一种错误发生、错误描述并请顾客选择处理错误方式对话框。如何使用这段代码?7/44SubSubExample() . .[Declarevariables,...] .OnErrorGoToHandleErrors . .[Procedurecode] .ExitSubHandleErrors:SelectCaseMsgBox(Error(Err.Number),vbCritical+vbAbortRetryIgnore,"ErrorNumber"+Str(Err.Number))CasevbAbortResumeExitLineCasevbRetryResumeCasevbIgnoreResumeNextEndSelectExitLine:ExitSubEndSub8/44例6-1简单错误跟踪程序(演示)功能:输入一种错误号(参见下一页),产生一种错误对话框。9/44典型错误号及错误描述ErrorNumber ErrorDescription 6 Overflow 9 Subscriptoutofrange 11 Divisionbyzero 13 Typemismatch 16 Expressiontoocomplex 20 Resumewithouterror 52 Badfilenameornumber 53 Filenotfound 55 Filealreadyopen 61 Diskfull 70 Permissiondenied 92 Forloopnotinitialized10/446.2调试VB程序针对:逻辑错误调度前提:程序进入中断模式最常用三个窗体:立即窗口、本地窗口和观测窗口。能够通过“调试”工具栏调出这三个窗口
功能:测试一种变量值、设置断点、观测变量和体现式值、手动控制程序执行、决定哪一种过程已经被调用、变化变量和属性值(在观测窗口中)11/44进入中断模式方式能够通过四种方式进入中断模式:执行到预先设置断点处程序运行过程中按下Ctrl+Break组合键遇到一种没有跟踪错误执行stop语句12/44例6-2调试例子(演示)13/446.4文献分类根据访问文献方式将文献提成3类:次序文献、随机文献、二进制文献1.次序文献次序文献(SequentialFile)是一般文本文献。次序文献中数据项按次序一种接一种地排列。存取数据时,必须按数据项次序逐一进行。数据项可大可小,以“换行符”为分隔符号。
特点:构造简单;但不能灵活存取,适用于不经常修改文献14/442.随机文献随机文献(RandomAccessFile)是能够按任意次序读写文献,每个数据项(又称统计)长度必须相同。构造体数据经常以这种形式存放。在这种文献构造中,每个数据项都有唯一一种编号,因此在读取数据时,只要懂得数据项编号,便能够直接读取数据项。特点:存取速度快,易更新;但占用空间大,设计程序较复杂15/443.二进制文献二进制文献(Binaryfile)是字节集合,直接把二进制码寄存在文献中。除了没有数据类型或者数据项长度含义以外,它与随机访问很相同。二进制访问模式是以字节数来定位数据,在程序中能够按任何方式组织和访问数据,对文献中各字节数据直接进行存取。特点:灵活性很大;相对,程序更复杂。16/441.FreeFile函数:功能:使用FreeFile函数能够把一种未使用文献号赋给指定变量。当用Open语句打开文献时,使用代表文献号变量,能够无须考虑详细文献号。当打开文献较多,尤其在某些通用过程中访问文献时,能够避免打开正在使用文献号。格式:
FreeFile[<区间号>]其中:<区间号>等于0或1。省略时(默认等于0),返回1~255之间文献号:<区间号>等于1时,则返回256~511之间文献号。6.5文献操作函数17/442.Loc函数功能:
返回文献中目前统计号;对于二进制文献,它将返回近来读写一种字节位置。格式:
Loc(文献号)18/443.Lof函数功能:返回已打开文献字节数格式:
Lof(文献号)例如:LOF(1):返回#1文献长度,假如返回0值,则表达该文献是一种空文献。19/444.Eof函数功能:Eof函数将返回一种表达文献指针是否达到文献末尾标志。假如到了文献末尾,Eof函数返回TRUE(-1),不然返回FALSE(0)。格式:
Eof(文献号)在应用中,一般使用下列格式检测是否达到文献尾:DoWhileNotEOF(文献号)LoopFileLen(文献名)
20/445.FileDateTime函数功能:返回文献被创建或最后修改日期和时间。格式:FileDateTime(文献号)21/446.FileLen函数功能: 返回一种Long,代表一种文献长度,单位是字节。格式: FileLen(文献号)22/44打开文献读出或写入关闭文献6.6文献操作在程序中对文献操作,一般按3个步骤进行:23/446.7次序文献打开与关闭
1.打开次序文献——Open语句格式:
OpenFileNameFor[Input|Output|Append]As文献号[Len=缓冲区长度]例如:OPEN“C:\TEMP\A.TXT”FORInputAS#1‘读文献OPEN“C:\TEMP\B.TXT”FOROutputAS#2‘写文献OPEN“C:\TEMP\C.TXT”FORAppendAS#3‘追加内容dimfilenumberfilenumber=FreefileOpen“c:\a.dat”foroutputas#filenumber24/44格式:
Close[文献号列表
]其中:文献号列表
:可选项,为文献号列表,如:#1,#2,#3,假如省略,则将关闭Open语句打开所有活动文献。例如:
Close#1,#2,#3
2.关闭文献——Close语句25/441.Print语句格式:
PRINT#<文献号>,[<输出列表>]说明:输出列表为用分号或逗号分隔变量、常量、空格和定位函数序列。与窗体Print办法功能同样。6.8次序文献写操作26/442Write语句说明:
1)输出列表中各数据项之间用“,”隔开
2)字符型数据用“”引住
3)每一输出行后自动加回车符格式:
Write#<文献号>,[<输出列表>]27/44例1.Print与Write语句输出数据成果比较。PrivateSubForm_Click()DimStrAsString,AnumAsIntegerOpen"D:\Myfile.dat"ForOutputAs#1Str="ABCDEFG"Anum=12345Print#1,Str,Anum‘逗号作为格式符Write#1,Str,AnumClose#1EndSubprintWrite28/44例2.编程把一种文本框中内容,以文献形式存入磁盘。假定文本框名称为myText1,文献名为Myfile.dat。办法1:把整个文本框内容一次性地写入文献。
Open“test.txt"ForOutputAs#1 Print#1,myText.Text Close#1 29/44办法2:把整个文本框内容一种字符一种字符地写入文献。
Open"Myfile.dat"ForOutputAs#1 Fori=1Tolen(myText1.Text) Print#1,Mid(myText1.Text,i,1); Nexti Close#130/44
格式:
INPUT#文献号,变量列表 把读出每个数据项分别寄存到所对应变量。
格式:
LINEINPUT#文献号,字符串变量 读一行到变量中,读出一行内容不包括回车、换行符。
格式:
INPUT$(读取字符数,#文献号)
从文献中读取指定数目标字符。包括回车、换行符6.9次序文献读操作31/44
例3.编程将一文本文献内容读到文本框。假定文本框名称为txtTest,文献名为MYFILE.TXT。能够通过下面三种办法来实现。
办法1:一种一种字符读DimInputDataasString*1txtTest.Text=""Open"MYFILE.TXT"ForInputAs#1 DoWhileNotEOF(1)
Input#1,InputDatatxtTest.Text=txtTest.Text+InputDataLoopClose#1 32/44办法2:一行一行读
txtTest.Text="" Open"MYFILE.TXT"ForInputAs#1 DoWhileNotEOF(1)
LineInput#1,InputData
txtTest.Text=txtTest.Text+InputData+vbCrLf Loop Close#1
回车换行33/44
办法3:一次性读
txtTest.Text="" Open"MyFile.txt"ForInputAs#1 txtTest.Text=Input$(LOF(1),1)
Close#1
34/44示例记事本(演示)功能:打开/关闭文献错误处理35/446.10随机文献读写操作
1随机文献打开与关闭Open“文献名”[ForRandom]As#文献号[Len=统计长度]Close#文献号
说明:统计长度:用于指定每条统计长度。能够用Len()函数返回统计长度文献可读、可写36/442写操作
格式:
Put#文献号,[统计号],统计变量
说明:
1)统计号为大于等于1整数,表达写入是第几条统计;
2)若忽视统计号,则表达在目前指针位置写入一条统计。
3)向文献末尾添加新统计时,应把统计号值设置为文献总统计数加1。37/44
格式:
Get#文献号,[统计号],统计变量
说明:
1)统计号是≥1整数,表达读第几条统计。
2)忽视统计号,则表达读取目前统计。3读操作38/44Ascii文献与二进制文献区分文献按存放信息形式分类ASCII文献:以ASCII代码形式寄存二进制文献:以二进制代码形式存放例如:十
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年矿产资源开发与合作合同
- 兼职文案创意撰写合同
- 交通运输工具融资租赁合同
- 环保工程桩基机械施工合同
- 智能电网通信网络升级合同
- 员工餐费补贴发放细则
- 餐厅浮雕施工协议
- 环保设施电工维护聘用协议
- 临时搭建物拆除合同
- 学校出租车租赁合同协议书
- GB/T 44685-2024印刷机械油墨干燥及固化装置能效评价方法
- 产品质量检测服务行业营销策略方案
- 佛吉亚卓越体系知识手册
- 第五单元作文 记述与动物的相处 课件七年级语文上册人教版2024
- GB/T 32151.29-2024温室气体排放核算与报告要求第29部分:机械设备制造企业
- 某制药厂房空调自控系统URS文件
- 身临其境 课件-2024-2025学年人教版(2024)初中美术七年级上册
- 2024秋期国家开放大学专科《社会调查研究与方法》一平台在线形考(形成性考核一至四)试题及答案
- 高中数学单元教学设计范文(5篇)
- 【人教版】《劳动教育》五上 劳动项目五《设计制作海报》课件
- GB/T 22517.2-2024体育场地使用要求及检验方法第2部分:游泳场地
评论
0/150
提交评论