Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
DESCRIÇÃO BREVE
Descreve a palavra-chave Throw, que gera um erro de encerramento.
DESCRIÇÃO LONGA
A palavra-chave Throw causa um erro de encerramento. Você pode usar a palavra-chave Throw para interromper o processamento de um comando, função ou script.
Por exemplo, você pode usar a palavra-chave Throw no bloco de script de uma instrução If para responder a uma condição ou no bloco Catch de uma instrução Try-Catch-Finally. Você também pode usar a palavra-chave Throw em uma declaração de parâmetro para tornar um parâmetro de função obrigatório.
A palavra-chave Throw pode lançar qualquer objeto, como uma cadeia de caracteres de mensagem do usuário ou o objeto que causou o erro.
SINTAXE
A sintaxe da palavra-chave Throw é a seguinte:
throw [<expression>]
A expressão na sintaxe Throw é opcional. Quando a instrução Throw não aparece em um bloco Catch e não inclui uma expressão, ela gera um erro ScriptHalted.
C:\PS> throw
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted
Se a palavra-chave Throw for usada em um bloco Catch sem uma expressão, ela gerará o RuntimeException atual novamente. Para obter mais informações, consulte about_Try_Catch_Finally.
JOGANDO UMA CORDA
A expressão opcional em uma instrução Throw pode ser uma cadeia de caracteres, conforme mostrado no exemplo a seguir:
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) [], R
untimeException
+ FullyQualifiedErrorId : This is an error.
JOGANDO OUTROS OBJETOS
A expressão também pode ser um objeto que gera o objeto que representa o processo do PowerShell, conforme mostrado no exemplo a seguir:
C:\PS> throw (get-process PowerShell)
System.Diagnostics.Process (PowerShell)
At line:1 char:6
+ throw <<<< (get-process PowerShell)
+ CategoryInfo : OperationStopped: (System.Diagnostics.Process (Pow
erShell):Process) [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (PowerShell)
Você pode usar a propriedade TargetObject do objeto ErrorRecord na variável automática $error para examinar o erro.
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
Você também pode lançar um objeto ErrorRecord ou uma exceção do Microsoft .NET Framework. O exemplo a seguir usa a palavra-chave Throw para gerar um objeto 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.
ERRO RESULTANTE
A palavra-chave Throw pode gerar um objeto ErrorRecord. A propriedade Exception do objeto ErrorRecord contém um objeto RuntimeException. O restante do objeto ErrorRecord e do objeto RuntimeException varia de acordo com o objeto que a palavra-chave Throw gera.
O objeto RunTimeException é encapsulado em um objeto ErrorRecord e o objeto ErrorRecord é salvo automaticamente na variável automática $Error.
USANDO THROW PARA CRIAR UM PARÂMETRO OBRIGATÓRIO
Você pode usar a palavra-chave Throw para tornar um parâmetro de função obrigatório.
Essa é uma alternativa ao uso do parâmetro Mandatory da palavra-chave Parameter. Quando você usa o parâmetro Obrigatório, o sistema solicita ao usuário o valor do parâmetro necessário. Quando você usa a palavra-chave Throw, o comando é interrompido e exibe o registro de erro.
Por exemplo, a palavra-chave Throw na subexpressão de parâmetro torna o parâmetro Path um parâmetro necessário na função.
Nesse caso, a palavra-chave Throw gera uma cadeia de caracteres de mensagem, mas é a presença da palavra-chave Throw que gera o erro de encerramento se o parâmetro Path não for especificado. A expressão que segue Throw é opcional.
function Get-XMLFiles
{
param ($path = $(throw "The Path parameter is required."))
dir -path $path\*.xml -recurse |
sort lastwritetime |
ft lastwritetime, attributes, name -auto
}