欢迎来到天天文库
浏览记录
ID:19825552
大小:120.00 KB
页数:14页
时间:2018-10-06
《第11章 程序调试与程序发布》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11程序调试程序发布本章主要内容程序调试:程序错误类型VB的调试方法随错误捕获技术应用程序的发布:程序的编译程序的发布第11章程序调试与程序发布程序调试:指在程序设计中对程序的错误进行查找并排除过程。VB6.0集成开发环境提供了丰富的程序调试工具,包括断点管理、运行控制、调试窗口、debug对象等。11.1.1程序错误类型1.语法错误语法错误是指程序中的语句和结构不符合语法规定,使用非法语句、过程没声明、变量或常量没定义等引起的错误。词法错误:系统用突出的颜色直接指出其错误的位置。结构错误:如语句结
2、构缺少结束语句错误,则在应用程序运行时,系统会提示错误的位置和原因。解决方法:程序的语法错误可以通过VB系统提供的自动语法检测功能容易发现和纠正。通过选择“工具”菜单中的“选项”子菜单后,会出现一个对话框;在弹出的对话框中选择“编辑器”选项中的“自动语法检测”复选框即可开启VB系统提供的自动语法检测功能。11.1程序调试2.逻辑错误逻辑错误是指程序的运行控制流程与预期控制流程不相符,此种错误一般没有任何提示,只是程序运行结果与预期结果不同。如变量x表示输入的月份的值,判断是否合法应该为x>=1andx<=12
3、而写成x>=1orx<=12,则表达式的值永远为True,达不到验证x是否合法的目的。这类错误只能在程序运行时,在一定的条件下才能发现。要排除这类错误,一般要借助调试工具。11.1.1程序错误类型3、运行错误运行错误是指在程序语句正确,运行时执行了一个不能执行的操作而产生的错误。如零除、溢出等。这类错误往往是由于一些特殊的输入条件引起的。发生这类错误时,系统中断程序运行,指示错误的位置和原因。语法错误可以在程序的调试过程中改正,运行错误在程序运行中,在一定的条件下才能发现。逻辑错误由于是程序的运行控制流程与预
4、期控制流程不相符,在调试过程中难以发现。11.1.1程序错误类型根据在原程序中是否加入调试语句,调试技术分:入侵性调试技术和非入侵性调试技术。入侵性调试技术:包括Stop、Debug对象。非入侵性调试技术:包括断点、单步执行、观察变量或表达式等。1.使用调试窗口程序运行后,选择“运行”菜单中的“中断”子菜单或按Ctrl+Break组合键可中断程序的运行,并激活了调试窗口(又称立即窗口),且在代码窗中显示正在运行的过程的代码。把鼠标移到某一变量处,则显示该变量的值,或在调试窗中用Print语句打印该变量的值。通
5、过观察有关变量的值,可以判断算法是否正确。要使在中断状态下的程序继续运行的三种方法:“运行”菜单中的“继续”或F5功能键:程序将继续正常运行。“调试”菜单中的“逐语句”或F8功能键:程序执行下一条语句。“调试”菜单中的“逐过程”子菜单或按Shift+F8组合键:执行下一个过程11.1.2VB的调试方法2.单步调试单步调试即程序每执行一条语句,中断一次。要进行单步调试,首先要把程序处在中断状态下。即选择“运行”菜单中的“中断”子菜单或按Ctrl+Break组合键可使程序处在中断状态,然后选择“调试”菜单中的“逐
6、语句”子菜单或按F8功能键进行单步调试。在单步调试过程中,调试窗口可用。3.使用断点断点设置方法:在代码窗中把光标移至要设置断点的语句,然后按F9功能键或用鼠标左击该语句左边灰色边缘,系统将突出显示该行,以表明断点的出现。断点取消方法:在代码窗中把光标移至要设置断点的语句,然后按F9功能键或用鼠标左击该语句左边灰色边缘,系统将突出显示行变为正常显示,以表明断点已取消。11.1.2VB的调试方法4.使用Stop命令在程序中加入stop语句的作用如同在该处设置一个断点,是一种侵入性的设置断点的方法,故程序调试好后
7、要删除Stop语句。5.监视变量值观察程序运行时一些变量或表达式在某些位置的值,以确定程序中错误发生的范围或错误发生的具体位置。要观察一些变量或表达式的值,程序需要在中断状态下进行。可以通过使用调试窗口、快速监视(quickwatch)对话框、观察窗口(AddWatch)和debug.print方法观察变量或表达式的值。11.1.2VB的调试方法程序通过调试后,大部分的错误都可找到并排除。但有些错误,如内存不够和用户操作错误等,在调试中是很难发现的。这些错误一旦在程序运行中出现,就会造成程序退出或死机现象。为
8、了避免这些错误出现时造成程序退出或死机现象,一般采用错误捕获技术来处理。VB错误捕获技术使用格式:OnErrorGoto<标号>当错误发生后转去执行标号后的代码OnErrorResumeNext当错误发生后继续往下执行。标号格式:<标号>:<错误处理代码>OnErrorGoto0,表示关闭错误处理陷阱11.1.3错误捕获技术捕获错误过程的一般结构如下:Sub<过程名>[<语句序1>]OnErrorG
此文档下载收益归作者所有