Попытка создать лучший способ обработки ошибок для некоторых автоматизированных вещей.
Я понимаю, что при использовании "continue" в Trap он должен просто продолжать цикл, но пропустить остальную часть текущей итерации . Однако в следующем коде все работает так, как я ожидал, за исключением l oop, код полностью останавливается, и, что бы я ни пытался, я не могу заставить его продолжать цикл.
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}
Может ли кто-нибудь объяснить, почему, или есть решение, которое позволило бы l oop продолжить, но все еще улавливать (не пытаться / улавливать) ошибку?