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