about_Throw

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

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

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

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

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

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

Синтаксис

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

throw [<expression>]

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

throw
Exception: ScriptHalted

throw Если ключевое слово используется в блоке catch без выражения, он снова создает текущую среду выполненияException. Дополнительные сведения см. в 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 .

См. также