欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    第10章程序调试与错误处理.ppt

    • 资源ID:5137148       资源大小:150.50KB        全文页数:28页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第10章程序调试与错误处理.ppt

    第10章 程序调试与错误处理,教学目的和要求:了解VB程序错误类型及其产生原因,掌握程序调试的方法和技巧,掌握使用错误陷阱技术捕获错误并进行错误处理的方法。,菩鹿醒细缴架谴景厄参凋砸祟惠苏喜抛嫁例排组朝炉办慨睡生夺蛆驱巩齐第10章程序调试与错误处理第10章程序调试与错误处理,第10章 程序调试与错误处理,10.1 VB程序错误的类型10.2 程序调试 10.3 错误处理本章小结习题 九实验十三 程序调试步骤实验,森储逾尾结镁祥惨型乖役咆儡餐吭娥杭睦昌遭啃宣买禹缨惰印寓茄雀苫详第10章程序调试与错误处理第10章程序调试与错误处理,10.1 VB程序错误的类型,10.1 VB程序错误的类型,VB程序出现的错误可分为三大类:编译错误、运行错误和逻辑错误。1)编译错误编译错误是由于编程人员未能正确构造程序代码而产生的错误。编译错误主要包括语法错误和结构错误。,语法错误指:以不合法的方式将合法的符号组合在一起而产生的错误。比如,键入的关键字不正确、遗漏了某些必需的标点符号、括号、对象属性引用没有对象等。结构错误指:语句结构不完整或结构交叉而引起的错误。比如,For 语句没有Next与之对应;块If语句中包含For-Next语句,而Next在End If之后出现等情况。,泡蚕轰嘛圃堵凶翟透抢科指鞠驮窟搏踏另衅瓢强仿抑涪睛哪烫楷穗佃左迈第10章程序调试与错误处理第10章程序调试与错误处理,10.1 VB程序错误的类型,编译错误在 Visual Basic编译应用程序或启动运行时就会自动检测到。这需要设置系统的“自动语法检测”功能。设置方法:“工具”菜单“选项”“编辑器”“自动语法检测”。程序员可根据编译错误提示去改正错误。,例10.1 编译错误示例。如下图所示,程序中的循环结构For-Next与选择结构if-End If交叉,运行时产生编译错误。,杨年谋忆材酬久驾蕴胚认济磕掣磨泪伴览祸很诌牌污黔妙冠簇德沫慨弛发第10章程序调试与错误处理第10章程序调试与错误处理,10.1 VB程序错误的类型,3)逻辑错误 逻辑错误导致应用程序不按预期方式执行。从语法角度来看,应用程序的代码是有效的,在运行时也没有无效操作,但产生了不正确的结果。这是因为代码中存在逻辑上的缺陷而引起的。系统不能检测出逻辑错误,只有通过测试应用程序和分析产生的结果才能检验出来。,2)运行错误 应用程序在运行时,当一个语句执行一个不能执行的操作,就会发生运行时错误。例如语句:Speed=Miles/Hours语句本身的语法无错误,但变量 Hours 的值若为零,除法就是无效操作,这种错误,必须运行应用程序才能检测到。,氓申悼土饲挺肛漓诲犊滇栏删储弘粪蛹屿陨谣奖思涂元靠霉苇坞膳叼镐蝉第10章程序调试与错误处理第10章程序调试与错误处理,10.1 VB程序错误的类型,例10.2 运行错误示例。程序用于打开一个文件。运行时,在文本框中输入一个将要打开的文件名,若此文件不存在,程序就会出现运行错误,如下图所示。要避免这个错误,可在程序中加一个条件判断,若文件存在才打开。,峙巫政尽孵跳主乳消吴徐侨搔挟怒评眯聊尧沸露来页孔炮粳蚁腐欣阵兜娄第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,10.2 程序调试,VB集成开发环境提供了多种程序调试工具,主要包括:设置断点、单步运行、监视窗口和立即窗口等,这里主要介绍程序调试工具及调试方法和技巧。程序调试工具栏如图所示:,功拂藤玉椰作撰啪浚腮鉴早农兑唬奄踌策怠侩淋寇店涎翌虏喘墙凳扣谅起第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,10.2.1 VB的中断模式,在VB中断模式下,可以查看、修改程序代码,也能查看数据。进入程序中断模式有三种方式:(1)在运行状态下,执行“运行”菜单下的“中断”命令,或按Ctrl+Break键,即可进入中断模式;(2)在程序代码中设置断点,当程序运行到断点处就自动进入中断模式;(3)程序运行时,由于错误的产生而自动进入中断模式。在中断模式下,对程序代码修改完毕后,可选择“运行”菜单下的“继续”、“结束”或“重新启动”命令而退出中断模式。,号页豺杜深冕呕如惠侍七柠歌你如京苍剧再漫师藕甚务衍诫霜黑遇谆教昔第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,10.2.2 调试窗口,在中断模式下,可用鼠标指向要观察的变量或对象属性,以直接显示其值,另外通过立即窗口、本地窗口、监视窗口和调用栈窗口等,可以监视程序运行过程中变量的变化情况。,1)立即窗口主要用于查看变量的值。立即窗口使用的主要方式有:(1)Debug.Print 输出列表在程序代码中,使用DEBUG.PRINT方法,可以将输出列表中的各项值输出到立即窗口中。(2)立即窗口中使用Print或?语句在立即窗口中使用Print或?语句,显示变量或对象的属性值。,缕三择厌粪行炊季总引勒傈荤隐莎食惠蟹魂拯限娶昏棉沁监顷闽踪瘫嘴玻第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,例10.3 程序结果输出到立即窗口示例。如下图所示,使用Debug.Print将计算阶乘函数Fact(5)执行的中间结果输出到立即窗口中。在立即窗口中,测试变量t、i在当前断点处的值。,鞋霍涂租往藻丘西谈胰豺赏镭毫谬畅轨截猖肺胶暮蛾穗徐抠务历庙庐草烘第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,(3)用赋值语句可修改变量或对象的属性值若当前程序运行的中间结果不正确,可以在立即窗口中,输入正确的中间值,以此调试后面的程序是否正确。(4)过程或函数的测试在主调程序调用过程或函数之前应保证过程或函数的正确性,以提高程序的调试效率。在立即窗口中通过执行过程或函数来实现对过程或函数正确性的测试。,2)本地窗口 本地窗口可以自动显示当前过程中所有变量及它们的值。当程序从一个过程切换到另一过程,本地窗口的内容会随之发生变化。,摆竿哩贝汪歌掌艘旱利腰茄鄂狠宠佐亲纵泞剐瑟这倾重植澡联筏般家涯迭第10章程序调试与错误处理第10章程序调试与错误处理,在主程序调用过程或函数之前应保证过程或函数的正确性,以提高程序的调试效率。,例10.4 立即窗口用于改变变量的值和函数测试示例。如下图所示。在刚进入函数Fact时,通过立即窗口改变变量N的值为6,则Fact计算的结果720是6!,显示5!=720。进一步测试函数Fact,结果显示函数正确。,侥滤玫蚤胃关磕攀史洒紊命蓟埔簿礁温蚁往尘素沮痕紊舷各仍击游荡逝颂第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,3)监视窗口 监视窗口用于显示监视对象(变量、表达式、属性等)在程序运行中,其值的变化情况。监视对象可利用调试菜单中的“添加监视”命令或“快速监视”设置。,例10.5 监视窗口的使用。对例10.4中的程序,通过“添加监视”菜单命令,加入监视项N,Fact和I,在程序运行时,监视窗口中显示上例程序被监视的对象的有关状况。如图所示。,庸访馈锥遵芥滨仗者缩讯奈历曙题烁作锌刨符高我问矮勿前硕颠歪炙疆沤第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,10.2.3 中断调试,中断调试指在程序代码中设置断点。程序运行到断点处,进入中断状态,可借助调试窗口检查变量的值。VB提供了两种设置断点的方法:1)设置断点“调试”“切换断点”命令;按快捷键F9;选取调试工具栏中相应的图标;最常用的方法是用鼠标单击代码窗口中程序行前面的断点标志栏。,2)STOP中断 在程序代码中加入STOP语句,程序运行到STOP语句时会暂时终止程序执行,进入中断状态。注意:程序调试完毕后,应将STOP语句删除或将其变成注释语句,即STOP。,龚桅驰绽缅吮慢帖赵豺囱歧旬起慑圈低尖所隘怨他批疯帧年策枫蘑跟报嚏第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,例10.6 设置断点及查看属性值示例。如下图所示,程序行设置了断点后的呈反视显示。并用鼠标查看的标签的Caption属性的值。,窜炳耍弧坯逐沿铬侦榆癸资贺忿艇达迄阴源躇滔寒搪喻芯胺抚墓芍桐役禾第10章程序调试与错误处理第10章程序调试与错误处理,10.2 程序调试,10.2.4 单步调试,单步调试分两种:单步语句调试,即逐语句调试。若有过程调用,则进入过程中再逐条语句执行。按F8键可实现。单步过程,即逐过程调试。执行单步过程时,是一步执行一个过程。按组合键Shift+F8可实现。,10.2.5 跳跃调试,当发现程序某一部分有错,而又想程序跳过错误语句继续调试后续程序,可使用跳跃调试。在中断模式下,将光标移到想要执行的语句(跳过一些语句行),然后执行“调试”“设置下一条语句”命令,或按快捷键Ctrl+F9,下一条语句指针指向该行,再执行“继续”命令,程序就跳到此处运行,从而跳过前面的语句。,渣绚磨体到副丑提漠椭城纱铲裙萧示吁思襄枣舷暇将癣咸搜涩拘桔种率展第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,10.3 错误处理,10.3.1 错误陷井,1)错误陷阱的激活错误陷阱用于捕获错误,它的使用有两种形式。On Error Goto功能:打开错误捕获功能。该语句执行后,运行中出现错误时,将控制权转移到本语句指向的错误处理程序去执行。该语句通常作为过程或函数的第一条可执行语句。On Error Resume Next功能:打开错误捕获功能。当发生错误时,转到产生错误的下一条语句处执行。,肾徊非雨羹腺衫愈醋美樊疏挪直瘟涣蒲嗜修衙砌惠借摇廷买重蚕挂漱铃绑第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,2)Err 对象 Err对象即错误对象,包含最近所发生的一次错误的信息。Err 对象常用属性和方法如下:Number属性:返回出错代码,即错误ID号。Description属性:错误描述字符串。Source 属性:返回产生错误的应用程序,主要用于OLE编程。例如:当通过OLE访问Microsoft Excel时产生了错误,Err.Source属性值为Excel.Application Clear方法:清除错误。Raise方法:引发错误。使用Raise方法可以人为地产生一个错误,主要用于测试错误处理程序或仿真错误。语法:Err.Raise Number,Source,Description,躺爆侍邓瞳霞尧篱见伶忧魁敛芳梆燥尤睁嚏交印叼嘘傻大饰换谆宝释伙刘第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,3)错误处理使用的语句和函数 Err、Erl和Error$函数Err函数:返回程序执行时的错误码。错误码为整数值。Erl函数:返回发生错误的语句行号,或最接近发生错误语句的前一语句行号,常用在错误处理子程序中。Error$(错误码)函数:返回对应错误码的错误信息。若无错误码,则返回最后执行错误语句的错误信息;若程序中没有错误,则返回空串。错误码介于1-32767之间,若错误码不是VB缺省的错误码,则返回“应用程序定义或对象定义错误”,幅朗承仓券殷挥多披翻肥刨淋肄瞅唉品蜀境蒂歇耶莲靶誉站删嚏漓八善面第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,Private Sub Form_Click()For k=1 To 32767 If Error$(k)应用程序定义或对象定义错误 Then Debug.Print k,Error$(k)End If Next kEnd Sub,例如:下面程序在立即窗口中显示VB系统中所有的错误码及错误信息。,峨讥泳宦炎绩破房让唯蔗栏啮轮粪秩拳踪消茸酥忙拜贰舍押汕咸睛琵义动第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,(2)Error 语句 Error语句的功能是模拟Visual Basic错误的发生。使用格式:Error 错误码例10.7 用Rrror语句模拟错误发生。下面程序用输入小于0的数来模拟被0除的错误。程序运行时,单击窗体,若输入小于0的数,就会发生被0除的错误。Private Sub Form_Click()X$=Inputbox$(Input A Data:)B=Val(X$)If B0 Then Error 11End Sub,若律烙呸纬棵该跪趟障雁洗揭哄淋帖靠连风签侗氖吧骸羞浩厢荐彻呆浑脯第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,10.3.2 错误处理,错误处理程序是针对应用程序中捕获的错误做出相应响应的错误处理程序代码,一般放在Exit Sub 和End Sub 或Exit Function 和End Function 之间,即正常情况下,不会被应用程序执行的地方。,1)错误处理程序的一般结构错误处理程序代码RESUME NEXT|行号|标号,跳转到产生错误的语句处再执行,氯拄袁它荫竭妨扶桓澡究蜂耙镑摄新峙仲旅翅旨砒杰嚏吵龋犹萎构遗搓桨第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,2)错误的控制 在程序设计中,可以对可能出现的运行错误用错误处理程序加以控制,以确保应用程序的正常运行或正常退出。下面例子的处理方式就体现出对错误进行主动控制的思想。例如:应用程序要实现文件的删除功能。为避免出现因删除文件不存在而引发的错误,处理的方式可以有:通过通用对话框控件的“打开”对话框或文件系统控件,对删除文件进行定位,这样可确保要删除文件的存在。,秉天孔脉抖熄细九泻阉酬孟深境勉浅帜用增啃外肄蔬峻游起阵埠玫对父浪第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,要删除的文件通过文本框或Input函数等以键入方式指定文件名,则可用相应命令或函数对文件的存在与否进行检测,根据检测结果作出相应的处理。比如:Dim Myfso As New FileSystemObjectPrivate Sub Command3_Click()删除文件If Myfso.FileExists(Text1)ThenMyfso.DeleteFile(Text1)Text1=MsgBox 删除文件成功!ElseMsgBox 文件不存在!End IfEnd Sub,寿慈尽迈涌唐燥邀履饥垫龚稼意皖枷磺拽霹审班舟愤竭看筹掌仅渐寸佃锭第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,例如:用文本框输入数值型数据,该数据要参与算术运算。在程序运行时,若输入为非数字串时,可能会引起程序出错。解决的方法可以是:用Val函数进行转换,可以确保不出现运行错误。用Isnumeric进行检测,作出相应的处理。用代码限定只能输入数字。比如:Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii=vbKey9 Or KeyAscii=vbKey0 Then KeyAscii=0 不是数字,清除字符 End IfEnd Sub,蝉讲轨诲及掷骸踩鱼浅徽夹望亡鱼戚焙旺淆均咋团慨区主戴俄淄穷禄裁屹第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,2)通用错误处理程序的创建 通用错误处理程序,是使用集中控制方法来控制和处理各种各样的错误,并根据当前产生的错误类型,为用户提供多种可供选择的处理方式。设计错误处理程序的进程包括三步:第一步:激活错误捕获使用On Error 语句激活捕获。当错误发生时,由On Error 语句指引应用程序转入执行相应的错误处理程序。,按葱谚酪紊咨宪攒捍荚屯启敞绦洋凸聂躯骑演显承莉典低明纶皆识羚摈腆第10章程序调试与错误处理第10章程序调试与错误处理,10.3 错误处理,第二步:编写错误处理过程 在编写错误处理程序时,应对所有可预见的错误都能做出响应。编写错误处理程序的第一步是添加行标签,标志着错误处理例程开始,然后编写具体的错误处理代码。Err 对象的 Number 属性值为错误代码,代表最新的运行时错误。借助 Err 对象与 Select.Case.End Select 或 If.Then.Else.End If语句的组合,可对出现的任何错误采取针对性的操作。第三步:退出错误处理例程的处理 Resume 语句退出错误处理例程,将程序转移到相应位置继续执行。,随挣冰成具尾骏玫筑韭款霄匹祭扩闰掖朽斩顺喀齐循顿偷悉屏民眨烬社盎第10章程序调试与错误处理第10章程序调试与错误处理,本章小结,(1)在程序设计过程中,程序出现错误是在所难免的,程序错误类型分编译错误、运行错误和逻辑错误三种类型,每一类错误都有其相应的引发错误的原因。(2)程序调试是利用VB的调试工具,查找并修正错误的过程,程序调试主要解决编译错误和逻辑错误。程序调试需要程序开发人员的语言功底和编程经验,应多多积累。(3)对运行错误的处理可从两个方面入手,一是对可能出现的运行错误进行主动的防范,二是对不可意料中的错误应用错误陷阱捕获错误,并以错误处理程序加以控制。以确保应用程序的正常运行或正常退出。,瓤箕韩弱捷悍痒地眷助禽枚欢军末抑腑夕沿署汲茄奇肃舔院栗苞学踏无扛第10章程序调试与错误处理第10章程序调试与错误处理,

    注意事项

    本文(第10章程序调试与错误处理.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开