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