4

私はPowerShellを初めて使用し、カスタムコマンドレットの1つに関する問題のトラブルシューティングを行っています。デフォルトでは、コマンドレット内でスローされるすべての例外には最小限の情報があり、スタックトレースはなく、連鎖例外に関する情報もありません。例外の詳細な出力を有効にする方法はありますか?

4

3 に答える 3

4

$ errorコレクションには、現在のセッションでスローされたすべての未処理の例外のライブリストが含まれています。最後の例外は$error[0]です。できるだけ早くエラーをキャプチャするために、このようなことを行うための良いテクニック:

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

get-memberで$eを探索します。

于 2011-05-10T01:24:35.830 に答える
4

私はこの手法を使用して、ネストされたエラーオブジェクトを取得しました。

$error[0]|format-list -force
于 2011-05-10T02:27:46.443 に答える
3

これが私がネット上の誰かから盗んだ素敵な関数です:)。私はそれを私のプロフィールに持っており、喜んでそれをさらに広めます:

#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
   }
}
于 2011-05-10T07:16:13.893 に答える