vfp程序设计课件.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.7 程序的调试  9.7.1 查错的常用方法。 一、如果在我们程序中有语法性的错误,当程序运行到错误的语句时系统就会停下来,并提示我们程序有错,往往还会说出是什么错误,如“命令中含有不能识别的短语或关键字”,并给出选择“取消”、“挂起”、“忽略”、“帮助”四个选择如图9-16所示。 图9-16程序中有语法性错误显示 它们的意思分别是: 取消——中止程序运行,回到命令窗口,相当于执行了cancel命令,在程序中创建的所有变量被释放(除公共变量),但数据库及数据表一般保持当时的状态,您可以用browse命令查看数据表的内容即记录指针所在的位置等等; 挂起——暂停程序,相当于执行了suspend命令,这时程序中的所有变量都保持原值,您可以用?命令查看变量的值,当然也可以查看数据表的情况; 忽略——忽略所出现的错误,即跳过出错的语句继续执行后面的语句; 帮助——显示有关出错的帮助信息,对于错误做更详细的说明。不过很多时候都没什么帮助。 9.7 程序的调试  如果这时您一眼就能看出问题出在哪,那么您可以用取消,然后进到程序中找出错误所在,将其改正。在选择了取消后,可能这时有表单是打开的,那么用鼠标点一下该窗口,然后调菜单上的文件—关闭。如果菜单是您自己的自定义菜单,用set sysmenu to default回到系统菜单。改完后,再次运行程序前,最好将所有的数据库及表关闭,以免在程序打开一个数据表时出现表已打开的错误,比较好的办法是在程序开头先关闭所有的数据库及表。关闭所有数据库的命令是:close databases all,关闭所有表的命令是:close tables all。 如果您不知道问题出在程序的哪个地方,那么就选择挂起,系统会弹出一个调试器窗口显示出错的语句,如图9-16,在跟踪窗口的黄色箭头所指的语句就是出错的语句。这时不要马上改程序,因为程序还没有结束运行,如要改程序应先终止程序运行,按调试中的终止按钮 ,然后退出调试器(菜单上的文件—退出),接下来与上面选择取消后的处理方法相同。 一般不要选择忽略,因为程序中上下语句都有很紧密的关系,当一条语句出错后,如果继续运行,可能会出现很多错误,而后面出错的语句可能并没有错,是因为前面错了才导致后面的语句出错,如果前面正确,后面也会正确,因此对于初学者来说,选择忽略不利于找出错误所在。 9.7 程序的调试  二、 有些时候,程序中的语句并没有出错,但是运行的结果却不是我们所要的结果,这往往是因为我们用错了语句,虽然语句本身是正确的,但用在了不该用的地方、或者该用的地方没有用、又或者语句的先后顺序错了等等,都可能导致这种情况。 一旦出现这种情况往往比上一种情况麻烦些,不容易一下看出问题出在哪里,那么需要我们仔细分析程序中的语句,看是否用的对,是否达到了我们的要求。 比如在我们前面九九乘法管理程序中,在程序的开始多了一条“i=1”语句,导致运行的结果出错。 图9-18程序中用错了语句 有时光看语句,怎么也看不出问题在哪,这就用采用一些辅助手段,最常用的辅助手段是在可能发生问题的地方将程序挂起,即在程序中加一句suspend,当程序运行到这里时将程序挂起,然后在命令窗口中查看各有关变量的值或数据表的情况。另外在程序挂起时我们可以调出调试器,看程序执行到什么地方。调的方法是在菜单上的工具—调试器,可以在其中的监视窗口查看各表达式的值,在局部窗口查看各变量的值,而且您可以在窗口中长条文本框(如图9-19)中输入一个表达式或变量,调试器会显示出它们的值。 9.7 程序的调试  图9-18程序中语句用错了 图9-19调试器中的监视窗口 如还不能找到问题,按可单步执行程序,即按一下运行一条语句,这样可以更有助于找到问题。 9.7 程序的调试  9.7.2 常见错误 启动一个表单后,再用代表这个表单的变量去调用它时却不行。调用表单的变量与其它变量一样,如是在一个子程序中创建的,当这个程序运行结束后,这个变量也就释放了,即这个变量不再存在了,虽然表单还在,故不能用这个变量去调用该表单了。解决的方法是将其设为公共变量,或在更高层的程序中创建,还可以在调用表单命令中加上“linked”子句(do form...name...linked)。 常常在表格中或其它地方看不到数据表中的记录。这往往是因为记录指针到尾部,即EOF()真。 修改记录时却修改了另一个记录。这往往是因为进入修改后又做了查询,查询后没有将记录指针返回到原记录。 进入一个循环后就死机了。这是因为没有设置跳出循环的条件,或者条件永远不能满足,比如一个循环的跳出条件

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档