about_Throw
Краткое описание
throw
Описывает ключевое слово, которая создает завершающую ошибку.
Подробное описание
Ключевое слово throw
вызывает завершающееся сообщение об ошибке. Вы можете использовать throw
ключевое слово для остановки обработки команды, функции или скрипта.
Например, можно использовать throw
ключевое слово в блоке скрипта if
инструкции для реагирования на условие или в catch
блокеfinally
try
-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 .
См. также
PowerShell