Как получить доступ к объекту Err VBScript в коде C # - PullRequest
0 голосов
/ 03 апреля 2012

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

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

То же самое относится и к .net и Java (это может быть попытка / ловить там).

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

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

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

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

1 Ответ

1 голос
/ 03 апреля 2012

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

...