vb中关于on Error的处理
来源:互联网 发布:冯矿伟网络高级课程 编辑:程序博客网 时间:2024/06/05 10:42
MSDN解释
On Error 语句
启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。
语法
On Error GoTo line
On Error Resume Next
On Error GoTo 0
On Error 语句的语法可以具有以下任何一种形式:
语句描述On Error GoTo line启动错误处理程序,且该例程从必要的 line 参数中指定的line 开始。line参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到line,激活错误处理程序。指定的 line必须在一个过程中,这个过程与 On Error 语句相同;否则会发生编译时间错误。On Error Resume Next说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用On Error GoTo。On Error GoTo 0禁止当前过程中任何已启动的错误处理程序。说明
注意 一个错误处理程序不是 Sub 过程或 Function 过程。它是一段用行标签或行号标记的代码。
错误处理程序依靠 Err 对象的 Number属性中的值来确定错误发生的原因。在其它任何错误发生之前,或在调用一个可能会导致错误发生的过程之前,错误处理程序应该先测试或存储Err 对象中相关的属性值。Err对象中的属性值只反映最近发生的错误。Err.Description 中包含有与 Err.Number相关联的错误信息。
On Error Resume Next会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用含有 OnError Resume Next语句的过程的语句继续运行。这个语句可以置运行时错误于不顾,使程序得以继续执行。可以将错误处理程序放置在错误发生的地方,而不必将控件传输到过程中的其它位置。在调用另一个过程时,OnError Resume Next 语句成为非活动的,所以,如果希望在例程中进行嵌入错误处理,则应在每一个调用的例程中执行On Error Resume Next 语句。
注意 当处理在访问其它对象期间产生的错误时,与其使用 OnError GoTo 指令,不如使用 On Error ResumeNext。每次和对象打交道,在不知道用代码访问哪个对象时,检查一下 Err都会打消这种疑虑。可以确定是哪个对象产生错误(Err.Source 中指定的对象),也可以确定是哪个对象将错误代码放在Err.Number 中。
On Error GoTo 0 停止在当前过程中处理错误。即使过程中包含编号为 0 的行,它也不把行 0指定为处理错误的代码的起点。如果没有 On Error GoTo 0语句,在退出过程时,错误处理程序会自动关闭。
在错误未发生的时候,为了防止错误处理程序代码运行,请像在下段程序中那样,在紧靠着错误处理程序的前面写入 Exit Sub、Exit Function 或 Exit Property 语句。
Sub InitializeMatrix(Var1, Var2, Var3, Var4) On Error GoTo ErrorHandler
. . .
Exit Sub
ErrorHandler:
. . .
Resume Next
End Sub
此处,错误处理程序代码在 Exit Sub 语句之后,而在 EndSub 语句之前,从而与过程中的流程分开。错误处理程序代码可以在程序中的任何地方写入。
当对象作为文件运行时,对象中未捕获的错误都被返回控制应用程序。在开发环境中,如果设置了正确选项,未捕获的错误只返回控制应用程序。请参考主应用程序的文档的有关描述,从而得知,在调试时应该设置哪些选项、如何设置这些选项以及主机能否建立类。
如果建立一个访问其它对象的对象,则应该着手处理从那些对象返回的未处理错误。如果无法处理这种错误,请将 Err.Number中的错误代码当作自己的一个错误,然后将错误回传给对象的调用者。应该将错误代码添加到 vbObjectError常数上来指定这个错误。举例来说,如果错误代码为 1052,则使用如下方法指定错误:
Err.Number = vbObjectError + 1052
注意 调用动态链接库 (DLL) 期间产生的系统错误不会产生例外情况,也不会被 VisualBasic 的错误捕获操作所捕获。当调用 DLL 函数时,应该(根据 API的详细说明)检查每一个返回值以确定是成功还是失败,如果失败,则检查 Err对象的 LastDLLError 属性中的值。
- vb中关于on Error的处理
- VB中错误处理On Error的应用
- vb编程On Error 的作用域
- C#异常处理“try catch”与vb ”on error goto“
- VB.NET中Try-Catch结构较传统的On Error Resume Next优势何在
- vb中关于错误处理中的问题
- 【VB】On Error略解
- VB On Error 使用详解
- Error ORA-19606 on RMAN Delete
- 在Word 宏 VBA循环中使用on error的错误处理方法
- 关于图处理的数据库 和 工具
- IIS7.5 An error occurred on the …
- VB里"On Error Resume Next"是什么意思?
- VB中On Error Resume Next 什么意思,一般在什么情况下使用
- 关于error inflating class
- 为什么Windows那么多以On开头的方法?(关于对继承中事件处理的认识!)
- 关于VB中对Unicode的支持
- 关于VB中Data控件的使用
- DWZ(JUI) 教程 中如何整合第三方jQuery插件
- Unicode下将ansi文本转换成Unicode文本
- 《Android内核剖析》读书笔记 第7章 理解Context
- 三极管的饱和区,截止区
- 51存储器结构
- vb中关于on Error的处理
- 有关于MSComm控件详解
- vb中关于错误处理中的问题
- 关于vb串行通信上位机的相关问题
- 对于输入输出电阻及负载的总结
- 从VB6.0到VB.NET中的变化差异
- VB.NET中的serialport类用法
- 研究电路频率响应的必要性
- vb.net跨线程调用实例