第11章_错误异常处理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 错误异常处理 错误及其处理 错误处理程序 调试工具 小结与习题 第11章 错误异常处理 错误及其处理 错误的类型 错误的处理 11.1 错误及其处理 错误的类型 1. 语法上的错误 2. 运行时错误 3. 逻辑上的错误 11.1 错误及其处理 错误的处理 就理想的情况而言,VB过程根本不需要错误处理代码。但实际上情况却是:硬件出现的问题或用户出乎意料的操作都会造成运行时错误,这些错误会使代码终止,而且通常无法恢复应用程序的运行。其他错误也许不会中断代码,但是这些错误可能使代码产生意想不到的操作结果。 11.2 错误处理程序 错误处理程序 编写错误处理例程 错误的模拟 11.2 错误处理程序 错误处理程序三步: 1. 设置错误捕获 当 Visual Basic 执行 On Error 语句时激活错误捕获,On Error 语句指定错误处理程序。 2. 编写错误处理例程 书写错误处理例程的第一步是添加行标签,标志着错误处理例程开始。行标签应该有一个具有描述性的名称,其后必须加冒号。有这样一个公共约定,即把错误处理代码放置在过程末端,该过程在紧靠行标签前方处具有 Exit Sub、Exit 函数或 Exit 属性语句。这样,如果未出现错误,则过程可避免执行错误处理代码。 3. 退出错误处理例程 指定的错误处理后应该决定程序该往哪里去执行,FileExists 函数示例使用错误处理程序内的 Resume 语句重新执行最初导致错误的那条语句,相当于Retry。而使用 Resume Next 语句把执行返回到出错语句之后的那条语句。相当于Ignore。 11.2 错误处理程序 错误处理的分层结构 激活的错误处理程序通过执行 On Error 语句而被激活,并且不会被 On Error GoTo 0 语句关闭,也不会通过退出激活它的过程而关闭。活动的错误处理程序是当前正在执行的错误处理程序。为了使错误处理程序为活动的,首先应激活它,但并非所有已激活的错误处理程序都是活动的。例如,在 Resume 语句之后,处理程序失活但仍然是激活的。 当错误发生在没有激活的错误处理例程过程内部,或发生在活动的错误处理例程内部时,Visual Basic 对另一个激活的错误处理例程搜索调用列表。调用列表是调用的序列,该序列指向当前执行的过程;它被显示在 Call Stack 对话框中。 11.2 错误处理程序 如果 Visual Basic 查找到一个激活的错误处理例程,那么,就好象在包含错误处理程序的同一过程中出现了错误那样,执行将在该例程中继续下去。如果在错误处理例程中执行 Resume 或 Resume Next 语句,则如下表所示,执行也见继续下去。 Resume 再次执行这样一个过程的调用,该过程是Visual Basic 搜索的过程。在前述的调用列表中,如果 过程 A 有激活的包含 Resume 语句的错误处理程序,则 Visual Basic 对 过程 B 再执行调用。 Resume Next 执行将返回到过程中已执行过的上一条语句之后的那条语句。这就是紧随着调用过程的语句,而过程又恰好是 Visual Basic 后退搜索过的。在前述调用列表中,如果 过程 A 有激活的包含 Resume Next 语句的错误处理程序,则执行将返回到调用 过程 B 之后的语句。 11.2 错误处理程序 有一些规则应该值得遵守: (1)在调试代码时,对于在程序中没有代码处理具体错误的情况,应在所有错误处理程序中使用Err对象的Raise方法重新生成错误。由此,应用程序就可按照调用列表,试着将其它错误处理例程中的错误加以改正。 (2)在处理错误后,如果需要明确地清除Err对象,则可用Clear方法。当使用具有OnErrorResumeNex的联机错误处理时,这种做法是非常必要的。VisualBasic无论何时执行任何类型的Resume语句、ExitSub、Exit函数、Exit属性或其它OnError语句,都可自动调用Clear方法。 (3)如果不想要另一个过程在调用列表中捕获错误,则可用Stop语句强制终止代码。在开发环境中精制代码时,可用Stop检查错误的上下文。 (4)编写一个故障保险的错误处理过程,所有错误处理程序都可调用它作为最后手段,解决不能处理的错误。故障保险的过程能够通过卸载窗体和保存数据,按顺序中断应用程序。 11.2 错误处理程序 错误的模拟 当测试应用程序,或想要处理等价于 Visual Basic 运行时错误的具体条件时,对错误进行模拟是非常有用的。例如,用一个定义在外部应用程序中的对象编写模块并希望应用程序的其余部分把该对象返回的错误作为实际的 Visual Basic 错误来处理。 为测试所有可能发生的错误

文档评论(0)

书屋 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档