应该像在vb6中那样传递WebClassError的数据类型

时间:2015-01-07 08:17:39

标签: vb6

我在vb6中的Dsr中有以下功能...

...
   Private Sub WebClass_FatalErrorResponse(SendDefault As Boolean)  
       myGenericFatalErrorResponse Error  
   End Sub

private sub myGenericFatalErrorResponse(byval oError as WebClassError)  
...  
end sub  

给出错误: -

myGenericFatalErrorResponse Error fails due to type mismatch .

所以我的问题是应该在myGenericFatalErrorResponse中传递错误的内容,我目前正在传递"as variant",但感觉"as WebClassError"应该有效。

1 个答案:

答案 0 :(得分:0)

应为err.raise

请记住,如果COM对象引发错误,则必须正确执行。对于vb错误,返回8004nnnn错误,对于Window错误,返回8007nnnn。您可以翻译错误编号,但始终保留源代码。

其他模块依赖于您引发错误。

来自VBScript的帮助(与VB6的帮助相同,但点击次数少于我的电脑)

生成运行时错误。

object.Raise(数字,来源,描述,帮助文件,帮助文本)

<强>参数

object 

始终是Err对象

数字

长整数子类型,用于标识错误的性质。 VBScript错误(包括VBScript定义和用户定义的错误)在0-65535范围内。

来源

命名最初生成错误的对象或应用程序的字符串表达式。为Automation对象设置此属性时,请使用表单project.class。如果未指定任何内容,则使用当前VBScript项目的编程ID。

说明

描述错误的字符串表达式。如果未指定,则检查数字中的值。如果它可以映射到VBScript运行时错误代码,则使用VBScript提供的字符串作为描述。如果没有与数字对应的VBScript错误,则使用通用错误消息。

<强>帮助文件

帮助文件的完全限定路径,可在其中找到有关此错误的帮助。如果未指定,VBScript将使用VBScript帮助文件的完全限定的驱动器,路径和文件名。

helpcontext

标识帮助文件中提供错误帮助的主题的上下文ID。如果省略,则使用与number属性对应的错误的VBScript帮助文件上下文ID(如果存在)。

<强>说明

除数字外,所有参数都是可选的。但是,如果使用“提升”,而未指定某些参数,并且Err对象的属性设置包含尚未清除的值,则这些值将成为错误的值。

在Automation对象中将number属性设置为您自己的错误代码时,将错误代码编号添加到常量vbObjectError。例如,要生成错误号1050,请将vbObjectError + 1050分配给number属性。

以下示例说明了使用Raise方法。

On Error Resume Next

Err.Raise 6  ' Raise an overflow error.

MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)

Err.Clear    ' Clear the error.