Поделиться через


about_Throw

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

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

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

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

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

Ключевое слово 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 .

См. также раздел