Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0
РАЗДЕЛ
about_Throw
КРАТКОЕ ОПИСАНИЕ
Содержит описание ключевого слова Throw, создающего неустранимую ошибку.
ПОДРОБНОЕ ОПИСАНИЕ
Ключевое слово Throw вызывает неустранимую ошибку. Его можно использовать для остановки обработки команды, функции или сценария.
Например, ключевое слово Throw можно использовать в блоке сценария оператора If для отклика на условие или в блоке Catch оператора Try-Catch-Finally. Ключевое слово Throw можно также использовать в объявлении параметра, чтобы сделать параметр функции обязательным.
Ключевое слово Throw может выводить любой объект, в том числе строку сообщения для пользователя или объект, вызвавший ошибку.
СИНТАКСИС
Ключевое слово Throw имеет следующий синтаксис:
throw [<expression>]
Выражение в синтаксисе Throw является необязательным. Если оператор Throw не входит в блок Catch и не включает выражение, он создает ошибку ScriptHalted.
C:\PS> throw
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted
Если ключевое слово Throw используется в блоке Catch без выражения, оно создает текущее исключение RuntimeException еще раз. Подробнее см. в разделе about_Try_Catch_Finally.
СОЗДАНИЕ СТРОКИ
Необязательным выражением в составе оператора Throw может быть строка, как показано в примере ниже.
C:\PS> throw "This is an error."
This is an error.
At line:1 char:6
+ throw <<<< "This is an error."
+ CategoryInfo : OperationStopped: (This is an error.:String) [], RuntimeException
+ FullyQualifiedErrorId : This is an error.
СОЗДАНИЕ ДРУГИХ ОБЪЕКТОВ
Выражение также может являться объектом, который выводит объект, представляющий процесс PowerShell, как показано в примере ниже. Вставить здесь текст раздела.
C:\PS> throw (get-process PowerShell)
System.Diagnostics.Process (PowerShell)
At line:1 char:6
+ throw <<<< (get-process PowerShell)
+ CategoryInfo : OperationStopped: (System.Diagnostics.Process (PowerShell):Process) [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (PowerShell)
Свойство TargetObject объекта ErrorRecord в автоматической переменной $error можно использовать для изучения ошибки.
C:\PS> $error[0].targetobject
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
319 26 61016 70864 568 3.28 5548 PowerShell
Также можно вывести объект ErrorRecord или исключение Microsoft.NET Framework. В примере ниже ключевое слово Throw используется для вывода объекта System.FormatException.
C:\PS> $formatError = new-object system.formatexception
C:\PS> throw $formatError
One of the identified items was in an invalid format.
At line:1 char:6
+ throw <<<< $formatError
+ CategoryInfo : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : One of the identified items was in an invalid format.
ВОЗВРАЩАЕМАЯ ОШИБКА
Ключевое слово Throw может создавать объект ErrorRecord. Свойство Exception объекта ErrorRecord содержит объект RuntimeException. Остальная часть объекта ErrorRecord и объекта RuntimeException меняется в зависимости от объекта, выводимого ключевым словом Throw.
Объект RunTimeException заключается в объект ErrorRecord, а объект ErrorRecord автоматически сохраняется в автоматической переменной $Error.
ИСПОЛЬЗОВАНИЕ КЛЮЧЕВОГО СЛОВА THROW ДЛЯ СОЗДАНИЯ ОБЯЗАТЕЛЬНОГО ПАРАМЕТРА
Ключевое слово Throw можно использовать для превращения параметра функции в обязательный.
Это альтернатива использованию параметра Mandatory ключевого слова Parameter. При использовании параметра Mandatory система требует у пользователя ввести обязательное значение параметра. При использовании ключевого слова Throw команда прекращает работу и выводит запись об ошибке.
Например, ключевое слово Throw в подвыражении параметра делает параметр Path обязательным параметром функции.
В этом случае ключевое слово Throw выводит строку сообщения, однако именно наличие ключевого слова Throw вызывает неустранимую ошибку, если параметр Path не указан. Выражение после ключевого слова Throw является необязательным.
function Get-XMLFiles
{
param ($path = $(throw "The Path parameter is required."))
dir -path $path\*.xml -recurse | sort lastwritetime | ft lastwritetime, attributes, name -auto
}
СМ. ТАКЖЕ
about_Break
about_Continue
about_Scope
about_Trap
about_Try_Catch_Finally