如何在C#代码中访问VBScript的Err对象

时间:2012-04-03 10:54:26

标签: c# .net visual-studio-2008 com vbscript

我发现VBScript中的错误处理存在问题,所以我想用c#代码(COM)解决这个问题。在这里,我需要在c#.net代码中访问VBScript的Err对象。我确实将引用命名空间 VBScript_Global 添加到项目中,但VBScript_Global.ErrObj是一个抽象类,因此无法访问它。 c#代码有没有办法观察Err.Number。

让我说清楚一点, 在VB6中,我们有On Error GoTo,如果有运行时错误,它会自动进入错误处理代码,我们可以在那里报告错误并采取适当的措施。

.net和Java也是如此(可能是try / catch)。

在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旁边?

1 个答案:

答案 0 :(得分:1)

VBScript在单独的环境中执行。您无法访问VBScript之外的内部VBScript对象,或者更恰当的是Windows Script Host。