Ответ 1
Если вы хотите повторно выдать оригинальное исключение, вы можете использовать throw
(наиболее распространенное), или throw $_
, или throw $_.Exception
ps: внутри catch
переменная $_
не является исключением сама по себе, но System.Management.Automation.ErrorRecord
содержит исключение
Примечание
Ключевое слово throw
в PowerShell ведет себя иначе, чем реализация .net: в .net вы можете выбросить только сам TG47 или его преемников, но в PowerShell вы можете выбросить все, что угодно, и оно автоматически помещается в System.Management.Automation.RuntimeException
. Смотрите фрагмент здесь.