gpt4 book ai didi

抛出错误后的powershell捕获调用堆栈

转载 作者:行者123 更新时间:2023-12-03 10:04:37 24 4
gpt4 key购买 nike

我想做这样的事情......

try  
{
# Something in this function throws an exception
Backup-Server ...
}catch
{
# Capture stack trace of where the error was thrown from
Log-Error $error
}

理想情况下,我想捕获函数和行号等的参数(就像你在 get-pscallstack 中看到的那样)
编辑:澄清一下,这是我想要的 powershell 堆栈跟踪,而不是 .NET 的
任何想法如何实现这一目标?
戴夫

最佳答案

最后一个错误是坐在:

$error[0]

那里有很多好的信息供您追踪,包括异常堆栈跟踪。这是一个方便的小脚本(PSCX 附带的 Resolve-ErrorRecord),它显示了有关最后一个错误的大量信息:
param(
[Parameter(Position=0, ValueFromPipeline=$true)]
[ValidateNotNull()]
[System.Management.Automation.ErrorRecord[]]
$ErrorRecord
)
process {

if (!$ErrorRecord)
{
if ($global:Error.Count -eq 0)
{
Write-Host "The `$Error collection is empty."
return
}
else
{
$ErrorRecord = @($global:Error[0])
}
}
foreach ($record in $ErrorRecord)
{
$record | Format-List * -Force
$record.InvocationInfo | Format-List *
$Exception = $record.Exception
for ($i = 0; $Exception; $i++, ($Exception = $Exception.InnerException))
{
"$i" * 80
$Exception | Format-List * -Force
}
}

}

关于抛出错误后的powershell捕获调用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2428668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com