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