Переменная $ error недоступна в модулях? - PullRequest
0 голосов
/ 17 марта 2011

Я очень люблю использовать try..catch операторы в скриптах Powershell (особенно при вызове внешних программ / COM-объектов и т. Д.), А затем использовать автоматическую переменную $error для обработки ошибок.

Myпроблема в том, что я обнаружил, что при инкапсуляции таких методов в модулях переменная $error больше не работает.Я предполагаю, что это как-то связано с тем, какой вызов вы на самом деле запускаете при вызове функции из модуля, но это все равно приводит в бешенство.Кто-нибудь здесь знает, почему или даже лучше: есть решение?

У меня есть обходной путь: использование Invoke-Expression с параметром -errorVariable для выполнения любых внешних вызовов, но это довольно сложно - и невсегда дурак.

1 Ответ

1 голос
/ 24 марта 2011

Может быть, использование переменной $ _ в блоке catch подойдет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...