第11章_错误异常处理_第1页
第11章_错误异常处理_第2页
第11章_错误异常处理_第3页
第11章_错误异常处理_第4页
第11章_错误异常处理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章错误异常处理 错误及其处理错误处理程序调试工具小结与习题 第11章错误异常处理 错误及其处理错误的类型错误的处理 11 1错误及其处理 错误的类型1 语法上的错误2 运行时错误3 逻辑上的错误 11 1错误及其处理 错误的处理就理想的情况而言 VB过程根本不需要错误处理代码 但实际上情况却是 硬件出现的问题或用户出乎意料的操作都会造成运行时错误 这些错误会使代码终止 而且通常无法恢复应用程序的运行 其他错误也许不会中断代码 但是这些错误可能使代码产生意想不到的操作结果 错误处理程序编写错误处理例程错误的模拟 11 2错误处理程序 11 2错误处理程序 错误处理程序三步 1 设置错误捕获当VisualBasic执行OnError语句时激活错误捕获 OnError语句指定错误处理程序 2 编写错误处理例程书写错误处理例程的第一步是添加行标签 标志着错误处理例程开始 行标签应该有一个具有描述性的名称 其后必须加冒号 有这样一个公共约定 即把错误处理代码放置在过程末端 该过程在紧靠行标签前方处具有ExitSub Exit函数或Exit属性语句 这样 如果未出现错误 则过程可避免执行错误处理代码 3 退出错误处理例程指定的错误处理后应该决定程序该往哪里去执行 FileExists函数示例使用错误处理程序内的Resume语句重新执行最初导致错误的那条语句 相当于Retry 而使用ResumeNext语句把执行返回到出错语句之后的那条语句 相当于Ignore 错误处理的分层结构激活的错误处理程序通过执行OnError语句而被激活 并且不会被OnErrorGoTo0语句关闭 也不会通过退出激活它的过程而关闭 活动的错误处理程序是当前正在执行的错误处理程序 为了使错误处理程序为活动的 首先应激活它 但并非所有已激活的错误处理程序都是活动的 例如 在Resume语句之后 处理程序失活但仍然是激活的 当错误发生在没有激活的错误处理例程过程内部 或发生在活动的错误处理例程内部时 VisualBasic对另一个激活的错误处理例程搜索调用列表 调用列表是调用的序列 该序列指向当前执行的过程 它被显示在CallStack对话框中 11 2错误处理程序 11 2错误处理程序 如果VisualBasic查找到一个激活的错误处理例程 那么 就好象在包含错误处理程序的同一过程中出现了错误那样 执行将在该例程中继续下去 如果在错误处理例程中执行Resume或ResumeNext语句 则如下表所示 执行也见继续下去 Resume再次执行这样一个过程的调用 该过程是VisualBasic搜索的过程 在前述的调用列表中 如果过程A有激活的包含Resume语句的错误处理程序 则VisualBasic对过程B再执行调用 ResumeNext执行将返回到过程中已执行过的上一条语句之后的那条语句 这就是紧随着调用过程的语句 而过程又恰好是VisualBasic后退搜索过的 在前述调用列表中 如果过程A有激活的包含ResumeNext语句的错误处理程序 则执行将返回到调用过程B之后的语句 有一些规则应该值得遵守 1 在调试代码时 对于在程序中没有代码处理具体错误的情况 应在所有错误处理程序中使用Err对象的Raise方法重新生成错误 由此 应用程序就可按照调用列表 试着将其它错误处理例程中的错误加以改正 2 在处理错误后 如果需要明确地清除Err对象 则可用Clear方法 当使用具有OnErrorResumeNex的联机错误处理时 这种做法是非常必要的 VisualBasic无论何时执行任何类型的Resume语句 ExitSub Exit函数 Exit属性或其它OnError语句 都可自动调用Clear方法 3 如果不想要另一个过程在调用列表中捕获错误 则可用Stop语句强制终止代码 在开发环境中精制代码时 可用Stop检查错误的上下文 4 编写一个故障保险的错误处理过程 所有错误处理程序都可调用它作为最后手段 解决不能处理的错误 故障保险的过程能够通过卸载窗体和保存数据 按顺序中断应用程序 11 2错误处理程序 11 2错误处理程序 错误的模拟当测试应用程序 或想要处理等价于VisualBasic运行时错误的具体条件时 对错误进行模拟是非常有用的 例如 用一个定义在外部应用程序中的对象编写模块并希望应用程序的其余部分把该对象返回的错误作为实际的VisualBasic错误来处理 为测试所有可能发生的错误 可能需要在代码中生成一些错误 在代码中可用Raise方法生成错误 object Raiseargumentlist通常 object参数是Err 它是VisualBasic定义的全局错误对象 argumentlist参数是命名的参数列表 这些参数可通过方法传递 第11章错误异常处理 11 3调试工具调试工具避免错误的技巧 11 3调试工具 调试工具监视窗口 出错代码窗口 添加监视对话框 监视表达式 11 3调试工具 监视区域变量及堆栈立即窗口 调用堆栈窗口 11 3调试工具 避免错误的技巧1 使用OptionExplicit把OptionExplicit语句写在模块的第一行 可以在编译时强迫检查变量的定义 工具 选项 对话框 11 3调试工具 2 良好的命名规则 1 适当的长度 VB只能接受40个字符以内的变量名 2 大小写交叉命名 大小写交叉命名可以让变量名含义更清楚 3 擅于用底线 使用底线来表示变量或程序名是一个不错的选择 4 写注解 写注解可以让程序更容易被读懂 当然你自己也因此更容易作自己的逻辑思考 5 成对的语句先打 如 For之后的各行中必须只能有一个Next 6 小心递归调用 7 注意可能造成无止境 8 注意可以能造成无止境循环 11 4小结和习题 小结错误处理一般是难免的 本章简述了在VB中如何进行错误处理 由于在前面的一些章节中也有提及错误处理方法 本章从一般的角度出发讨论了如何发现 处理和避免程序中的错误 首先 通过一个例子讲述了如何处理错误 然后分别讨论了设计应用程序中捕获和响应错误的例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论