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 .
См. также
PowerShell