04-3-程序调试与错误处理.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04-3-程序调试与错误处理剖析

程序运行时,当用户输入一个正数时,则显示出该数的平方根;如果输入的是一个负数,则因求负数的平方根(通过函数Sqr())而出错,此时会跳转到错误处理程序段。 在错误处理程序段中,先判断错误码,若是5(即发生求负数的平方根的错误),则将该负数转换为正数,设置复数标记,然后执行Resume语句返回到原出错处继续执行。 如果发生的不是错误5,则显示有关信息后强制结束。 Ch4-3 程序调试与错误处理 概念 程序调试是进行程序设计的基本功之一,也是一个实践性很强的工作,需要在实践中不断总结经验,才能逐步提高自己的调试程序的能力。 程序调试的主要任务:查找程序的错误和排除错误 错误类型 VB程序有三类错误类型:编译错误,逻辑错误和运行错误 ? 编译错误 编译错误是指在程序编译过程中出现的错误。通常是由于不正确书写代码而产生的。如:关键字写错,遗漏标点符号,括号不匹配等。 例如: Foor t = 1 To 100 ? 运行错误 运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。 例如:下标越界 Dim D(20) As Integer, k As Integer For k=1 To 30 D(k)=k*k Next k ? 逻辑错误 逻辑错误使程序运行时得不到预期的结果。这种程序没有语法错误,也能运行,但却得不到正确的结果。 例如,在一个算术表达式中,把乘号“*”写成了加号“+”,条件语句的条件写错,循环次数计算错误等 示例1:要求10!,若采用: Private Sub Form_Load() Dim t As Integer For i=1 To 10 t=t*i Next i Show :Print t End Sub ‘ 运行程序时输出的结果是0 通常,调试程序过程中所花的大部分时间和精力都在逻辑错误上 示例1 错误类型 三种工作模式:设计模式、运行模式和中断模式 ? 设计模式 在设计模式下,可以建立应用程序的用户界面,设置控件的属性,编写程序代码等。 ? 运行模式 在运行模式下,可以测试程序的运行结果,可以与应用程序对话,还可以查看程序代码,但不能修改程序。 ? 中断模式 在中断模式下,可以利用各种调试手段检查或更改某些变量或表达式的值,或者在断点附近单步执行程序,以便发现错误或改正错误。 工作模式 设置断点 鼠标单击 程序调试 程序调试一般包括静态检查和动态检查 ? 静态检查与动态检查 静态检查程序的基本方法是逐行逐句地读程序,弄清楚每条语句的作用,预见每条语句和模块的执行结果,判断是否与预期结果相一致,这就是静态检查,也称人工检查。 静态检查无误后,就可以进行更有效的动态检查。通过上机调试来发现错误称为动态检查。 动态检查的基本方法是输入一组典型的数据来运行程序。程序对这些数据处理结果应是已知的,通过运行后实际结果和预想结果相比较,可以判断程序的正确性。 VB调试工具 ? 切换断点:“切换断点”按钮用来设置断点。 ? 逐语句:逐条语句执行程序,每执行一条语句后就返回中断模式;如果执行的是过程调用的代码(如Call),“逐语句”操作也会跟踪到被调过程中继续一条语句一条语句的执行。 ? 逐过程:是以整个函数或过程为一个整体,一次执行。逐过程与逐语句一样,能够一条语句一条语句地执行代码。把被调用的函数或过程当作一个语句来看待。 切换断点 逐过程 本地窗口 监视窗口 逐语句 跳出 立即窗口 快速监视 ? 跳出:将连续执行完该过程的其余部分,返回调用过程的下一条语句并回复中断模式。 ? 本地窗口:显示当前过程中所有变量和活动窗体的所有属性值。 Me代表当前窗体;单击“+”号或“-”号 ? 立即窗口:可以检查某个属性或者变量的值,也可以对表达式求值,或为变量或属性赋值等。 ? 监视窗口:对用户定义的表达式进行监视。 VB调试工具 示例2:计算t=0.1+0.2+0.3+…+0.9+1的值。代码如下: Private Sub Form_Load() Dim t As Single, i As Single

文档评论(0)

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

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

1亿VIP精品文档

相关文档