Подробный вывод Powershell для связанных исключений - PullRequest
4 голосов
/ 10 мая 2011

Я новичок в powershell и устраняю проблему с одним из наших пользовательских командлетов.По умолчанию все исключения, генерируемые в командлете, содержат минимальную информацию, отсутствие трассировки стека и информации о связанных исключениях.Есть ли способ включить подробный вывод исключений?

Ответы [ 3 ]

4 голосов
/ 10 мая 2011

Я использовал эту технику для получения вложенных объектов ошибок:

$error[0]|format-list -force
4 голосов
/ 10 мая 2011

коллекция $ error содержит живой список всех необработанных исключений, выданных в текущем сеансе. Последнее исключение в $ error [0]. Хорошая техника сделать что-то подобное, чтобы как можно скорее зафиксировать ошибку:

ps> invoke-something
error: ...
ps> $e = $error[0]

Исследуйте $ e с get-member.

3 голосов
/ 10 мая 2011

Вот аккуратная функция, которую я украл у кого-то в сети :). У меня есть это в моем профиле, и я буду рад выкладывать его дальше:

#Get detailed information on an error
function Resolve-Error ($ErrorRecord=$Error[0])
{
   $ErrorRecord | Format-List * -Force
   $ErrorRecord.InvocationInfo |Format-List *
   $Exception = $ErrorRecord.Exception
   for ($i = 0; $Exception; $i++, ($Exception = $Exception.InnerException))
   {   "$i" * 80
       $Exception |Format-List * -Force
   }
}
...