【发布时间】:2012-04-17 00:30:29
【问题描述】:
我发现 VBScript 中的错误处理存在问题,因此我想使用 c# 代码 (COM) 解决此问题。在这里,我需要在 c#.net 代码中访问 VBScript 的 Err 对象。我确实在项目中添加了引用命名空间 VBScript_Global,但 VBScript_Global.ErrObj 是一个抽象类,因此无法访问它。有没有办法让 c# 代码看到 Err.Number。
让我说得更清楚, 在 VB6 中,我们有 On Error GoTo,如果出现运行时错误,它会自动进入错误处理代码,我们可以在那里报告错误并采取适当的措施。
.net 和 Java 也是如此(可能在那里尝试/捕获)。
在 VBScript 中,我们有 On Error Resume Next (它不支持 GoTo )。 On Error Resume Next 只是将控制器移动到下一条语句并继续执行。其中,我们需要在代码中每条语句后显式检查 Err.number 0,实现不可行。
所以我想要VBScript中的通用方法,如果出现运行时错误,那么我应该能够以某种方式报告它。
我想在 c#.net 中编写一个 dll,它总是检查 VBScript 的 Err.Number 并在发生错误时报告。这可能吗?还是我的方法不对? 处理这种情况的任何其他替代建议/想法表示赞赏。谢谢。
如果 dll 无法执行所需的操作,有没有办法可以随时检查 VBScript 的 Err.number 是否在 VBScript 之外不为 0?
【问题讨论】:
-
如何从 C# 代码执行 vbscript 代码?如果您使用 Process 类,除了 ExitCode 属性,您将无法获得任何有用的错误信息。这通常就足够了。
-
“VBScript 中的错误处理问题”到底是什么?为什么您决定通过添加另一个组件而不是防止原来的问题来解决它?
标签: c# .net visual-studio-2008 com vbscript