about_Throw

Краткое описание

Описывает ключевое throw слово, которое создает завершающую ошибку.

Подробное описание

Ключевое throw слово вызывает завершающееся сообщение об ошибке. Ключевое throw слово можно использовать для остановки обработки команды, функции или скрипта.

Например, ключевое слово можно использовать throw в блоке скрипта if инструкции для реагирования на условие или в catch блокеfinally try-catch-инструкции.

Ключевое throw слово может вызвать любой объект, например строку сообщения пользователя или объект, вызвавшего ошибку.

Синтаксис

Синтаксис ключевого throw слова выглядит следующим образом:

throw [<expression>]

Выражение в синтаксисе throw является необязательным. throw Если инструкция не отображается в блоке catch и не включает выражение, она создает ошибку ScriptHalted.

throw
Exception: ScriptHalted

Если ключевое throw слово используется в catch блоке без выражения, он снова создает текущее значение RuntimeException. Дополнительные сведения см. в about_Try_Catch_Finally.

Создание строки

Необязательное выражение в throw инструкции может быть строкой, как показано в следующем примере:

throw "This is an error."
Exception: This is an error.

Создание других объектов

Выражение также может быть объектом, который создает объект, представляющий процесс PowerShell, как показано в следующем примере:

throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)

Для проверки ошибки можно использовать свойство TargetObject объекта ErrorRecord в автоматической $Error переменной.

$Error[0].TargetObject
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    125   174.44     229.57      23.61    1548   2 pwsh
     63    44.07      81.95       1.75    1732   2 pwsh
     63    43.32      77.65       1.48    9092   2 pwsh

Можно также throw создать объект ErrorRecord или исключение .NET. В следующем примере ключевое throw слово используется для создания объекта System.FormatException .

$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.

Результирующая ошибка

Ключевое throw слово может создать объект ErrorRecord . Свойство Exception объекта ErrorRecord содержит объект RuntimeException. Остальная часть объекта ErrorRecord и объекта RuntimeException зависит от вызываемого объекта.

Объект throw упаковывается в объект ErrorRecord, и объект ErrorRecord автоматически сохраняется в автоматической переменной $Error .

Использование throw для создания обязательного параметра

В отличие от прошлых версий PowerShell, не используйте throw ключевое слово для проверки параметров. Для правильного способа см . about_Functions_Advanced_Parameters .

См. также