我是 powershell 的新手,并且使用我们的一个自定义 cmdlet 解决了问题。默认情况下,在 cmdlet 中引发的所有异常都具有最少的信息,没有堆栈跟踪,也没有关于链式异常的信息。有没有办法启用异常的详细输出?
问问题
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 回答