我是PowerShell的新手,并使用我们的一个自定义cmdlet解决问题。默认情况下,cmdlet中抛出的所有异常都具有最少的信息,没有堆栈跟踪,也没有关于链接异常的信息。有没有办法启用详细的详细输出?
答案 0 :(得分:4)
$ error集合包含当前会话中抛出的所有未处理异常的实时列表。最后一个例外是$ error [0]。这样做的好方法是尽快捕获错误:
ps> invoke-something
error: ...
ps> $e = $error[0]
使用get-member探索$ e。
答案 1 :(得分:4)
我已经使用这种技术来获取嵌套的错误对象:
$error[0]|format-list -force
答案 2 :(得分: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
}
}