Подтвердить что ты не робот

Как я могу удалить исключение из блока catch в Powershell?

Должен ли я обращаться к обработке исключений так же, как .Net?

Затем, как я могу перебросить исключение из блока catch в Powershell?

'throw' is enoungh или 'throw $_' будет лучше?

4b9b3361

Ответ 1

Если вы хотите повторно выдать оригинальное исключение, вы можете использовать throw (наиболее распространенное), или throw $_, или throw $_.Exception

ps: внутри catch переменная $_ не является исключением сама по себе, но System.Management.Automation.ErrorRecord содержит исключение

Примечание

Ключевое слово throw в PowerShell ведет себя иначе, чем реализация .net: в .net вы можете выбросить только сам TG47 или его преемников, но в PowerShell вы можете выбросить все, что угодно, и оно автоматически помещается в System.Management.Automation.RuntimeException. Смотрите фрагмент здесь.