尝试创建一种更好的方法来处理某些自动化内容的错误。
我的理解是,当在 Trap 中使用“继续”时,它应该保持循环,但跳过当前迭代的其余部分。但是,在下面的代码中,一切都按我的预期处理,除了在循环中,代码完全停止,无论我尝试什么,我都无法让它继续循环。
trap {
Clear-Host
Write-Host "Running script: '$PSCommandPath' as user: '$(whoami)' with process id (PID): '$PID'`n"
Write-Host "Exception error: " $_
Write-Host "`nVariables at run time:"
Get-Variable *
continue;
}
try {
throw "TryCatchError"
} catch { Write-Host "test 2 caught" $_ }
throw "TrapError"
#this loop doesnt work
While ($true) { Throw "error"; Start-sleep 1}
任何人都可以解释为什么或有一个解决方案可以让循环继续,同时仍然捕获(而不是尝试/捕获)错误?