【发布时间】:2016-07-04 17:53:03
【问题描述】:
通过一些 Visual Basic 脚本,我不小心尝试启动一个不存在的程序:
Dim WshShell
Set WshShell = CreateObject("Wscript.Shell")
On Error Resume Next
WshShell.Run "incorrect"
WScript.Echo "Error:" & vbTab & Err.Description & vbCrLf & _
"Code:" & vbTab & Hex(Err.Number)
这给了:
错误: 代码:80070002所以没有描述。
当我禁用错误检查(注释掉On Error Resume Next)时,我确实得到一个描述:
这种行为差异是错误吗?还是我错过了什么?我在任何地方都找不到此文档。
【问题讨论】:
-
有趣的是,我刚刚测试了这个,结果相同,不知道为什么会发生,但会调查。
-
很好地找到了这篇旧的Doctor Scripto's Script Shop: To Err Is VBScript – Part 1 文章。大约在文章进行到一半时,提到了行为差异,但从未完全解释过。
-
Quote - "如果您是那些注意到清单 2 中 Source 和 Description 属性为空的人之一,但在这里它们返回值相同的错误,您可能现在正在摸不着头脑。我们也是。请记住,没有神秘的脚本会枯燥乏味。但是既然你问了,Scripto 博士就在四处走动,推测它可能与清单 2 的实例化方式有关直接创建特定的 Win32_Printer 对象,而无需先创建 WMI 服务对象:"。不确定这有多大帮助。