【发布时间】:2016-09-22 12:56:39
【问题描述】:
我支持一个旧的 VB6 应用程序,我想知道为什么代码同时使用 Err.Raise 和 Error.Raise。两者都出现在每次数据库调用后的验证中。
我们正在将此应用程序迁移到 C#,我正在尝试了解这些语句之间的细微差别,以便在 C# 中正确重现这两种行为。
我花了好几个小时搜索有关 Error.Raise 的信息,但没有找到任何有用的信息。
谢谢,
伊夫
【问题讨论】:
-
没有内置的 Error.Raise 但您可以创建一个名为 Error 的 ErrObject,这很可能在您的代码中出现。右键单击错误并单击定义,看看它会把你带到哪里。
-
当我单击定义时,它指的是 VB6 库。它在 VBA.Conversion 中定义,它是一个以错误号作为参数并返回给定错误号的错误消息的函数。也许 VB6 编译器只是用 Err.Raise 代替 Error.Raise ???
-
如果您创建一个新的空 VB6 项目,将根本没有名为
Error的对象。这可能是您的特定项目中引入的内容。我会找到它的一个例子,右键单击Error并选择Definition看看它会导致什么。 -
使用 Error.Raise,而不定义名为 Error 的对象,将导致“需要对象”错误。也许用一些相关代码更新您的问题。不确定它是否会有所帮助,但它可能会。
-
@Marc 你是对的。在 On Error Goto 块中,如果出现错误,我们调用 Error.Raise。 VB6 分支到错误块以将出错的地方写入日志。在日志中,我们找到“需要对象”。它已经存在多年了。
标签: vb6 difference