error-handling - 什么导致VB6 "Run-Time Error ' 5': Invalid Procedure Call or Argument"

标签 error-handling vb6 runtime-error citrix

在 VB6 中,用户偶尔会收到此错误,我无法重现。

Run-Time Error '5': Invalid Procedure Call or Argument



我正在引用“MSWord 10 对象库”,有时在应用程序打开 MSWord 2002 后的某个时刻会发生此错误。但是,此应用程序已引用 MSWord 10 对象库多年,而此错误在最近几年才开始发生个月。

该代码使用以下内容对应用程序进行脱 shell :
Dim app As Word.Application = GetObject("", "Word.Application")

我假设我在某处引入了一个错误,但不知道是什么导致了它。该错误不会经常发生并且当我站在那里时用户无法重现。该错误迫使应用程序完全关闭。

用户运行的是 Windows XP。报告问题最多的用户是通过 Citrix 运行该应用程序。共有 350 名用户,其中大约 100 名通过 Citrix 使用该应用程序。

关于如何修复错误的任何想法?

最佳答案

从使用 VB6 的内存(现在使用 .net)来看,这可能表明用户机器内存不足,或者您的代码无法获得 app 一词的句柄。

如果您无法在 Visual Studio 中产生问题并且不确定代码中的哪一行导致了问题,您最好在导致问题的代码周围添加一个错误处理程序。

在有问题的子顶部放置

   On Error GoTo MyErrorHandler

然后在底部放
   On Error Goto 0
   Exit Sub
MyErrorHandler:
   MsgBox "Error " & Err.Number & " (" & Err.Description & ") at line " & Erl

而不是像我在这里那样使用 MsgBox 而是考虑写到一个文件中。考虑到对每一行进行编号,Erl 也能正常工作。

对于 VB6,一个很棒的插件是 MZ 工具 link这将帮助您非常轻松地添加错误处理和行号

关于error-handling - 什么导致VB6 "Run-Time Error ' 5': Invalid Procedure Call or Argument",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2454671/

相关文章:

java - 同步块(synchronized block)内的 IllegalMonitorStateException

objective-c - 此类与键错误的键值编码不兼容

linux - ERR背后的实际信号是什么

python - 语法错误 : EOL while scanning string literal while using backslash escape

vb6 - 当我从 VB6 的上下文菜单中选择一个选项时,如何停止显示额外的上下文菜单?

excel - 粘贴幻灯片时出错: The specified data type is unavailable

C++:此代码编译,但抛出运行时检查失败 #2 - 变量 'num' 周围的堆栈已损坏。发生

magento - 特价未显示在类别页面上

vb6 - VB6函数名中&符号的意义?

c++ - Windows 是否有从不用于 processID 的特殊值?