2012-04-03 2 views
0

Я вижу, что проблема с обработкой ошибок в VBScript, поэтому я хотел бы исправить это с помощью кода C# (COM). Здесь мне нужно получить доступ к объекту Err VBScript в коде C# .net. Я добавил в проект ссылочное пространство имен VBScript_Global, но VBScript_Global.ErrObj - абстрактный класс, поэтому он не смог получить к нему доступ. Есть ли способ, которым код C# может просматривать Err.Number.Как получить доступ к объекту Err VBScript в коде C#

Позвольте мне уточнить, В VB6 у нас есть ошибка Error GoTo, в которой, если есть ошибка времени выполнения, она автоматически переходит в код обработки ошибок, и мы можем сообщить об ошибке там и выполнить соответствующее действие.

То же самое можно сказать и с .net и Java (возможно, это попробовать/поймать).

Здесь, как и в VBScript, у нас есть сообщение об ошибке Resume Next (оно не поддерживает GoTo). On Error Resume Next просто перемещает контроллер в следующий оператор и продолжает выполнение. Где нам нужно явно проверить, не удалось ли Err.number <> 0 после каждого утверждения в коде, что невозможно реализовать.

Так что я хочу использовать общий подход в VBScript, если есть ошибка времени выполнения, тогда я должен как-то сообщить об этом.

Я думал о написании dll в C# .net, который всегда проверяет значение Err.Number VBScript и сообщает о возникновении ошибки. Это возможно? Или мой подход неправильный? Любые другие альтернативные предложения/идеи для решения этой ситуации приветствуются. Благодарю.

Если dll не может делать то, что ищут, есть ли способ, который я всегда могу проверить, не является ли Err.number VBScript вне VBScript?

+1

Как выполнить код vbscript с вашего кода на C#? Вы не можете получить какую-либо полезную информацию об ошибке, если используете класс Process, отличный от свойства ExitCode. Это часто бывает достаточно. –

+0

Что такое «проблема с обработкой ошибок в VBScript»? Почему вы решили исправить это, добавив еще один компонент вместо предотвращения исходной проблемы? –

ответ

1

VBScript выполняется в отдельной среде. Вы не можете получить доступ к внутреннему объекту VBScript вне VBScript или, соответственно, к Windows Script Host.

Смежные вопросы