Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
BREVE DESCRIÇÃO
Descreve a palavra-chave Lançamento, que gera um erro de terminação.
LONGA DESCRIÇÃO
A palavra-chave lançamento provoca um erro de terminação. Pode utilizar a palavra-chave 'Lançar' para impedir o processamento de um comando, função ou script.
Por exemplo, pode utilizar a palavra-chave 'Lançar' no bloco de scripts de uma declaração se responder a uma condição ou no bloco de captura de uma declaração de Try-Catch-Finally. Também pode utilizar a palavra-chave 'Lançar' numa declaração de parâmetro para tornar obrigatório um parâmetro de função.
A palavra-chave Lançamento pode lançar qualquer objeto, como uma linha de mensagem do utilizador ou o objeto que causou o erro.
SINTAXE
A sintaxe da palavra-chave Lançamento é a seguinte:
throw [<expression>]
A expressão na sintaxe do Lançamento é opcional. Quando a declaração de Lançamento não aparece num bloco de captura, e não inclui uma expressão, gera um erro ScriptHalted.
C:\PS> throw
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted
Se a palavra-chave Lançamento for utilizada num bloco de captura sem expressão, volta a lançar a atual Versão Runtime. Para mais informações, consulte about_Try_Catch_Finally.
JOGANDO UMA CORDA
A expressão opcional numa declaração de Lançamento pode ser uma corda, como mostra o seguinte exemplo:
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 atira o objeto que representa o processo PowerShell, como mostra o seguinte exemplo:
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)
Pode utilizar a propriedade TargetObject do objeto ErrorRecord na $error variável automática 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
Também pode lançar um objeto ErrorRecord ou uma exceção Quadro Microsoft .NET. O exemplo a seguir utiliza a palavra-chave Lançamento para lançar 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 Lançamento pode gerar um objeto ErrorRecord. A propriedade de Exceção do objeto ErrorRecord contém um objeto RuntimeException. O restante do objeto ErrorRecord e do objeto RuntimeException variam com o objeto que a palavra-chave Lançamento lança.
O objeto RunTimeException está embrulhado num objeto ErrorRecord e o objeto ErrorRecord é automaticamente guardado na variável automática $Error.
USANDO O THROW PARA CRIAR UM PARÂMETRO OBRIGATÓRIO
Pode utilizar a palavra-chave 'Lançar' para tornar obrigatório um parâmetro de função.
Esta é uma alternativa à utilização do parâmetro obrigatório da palavra-chave Parâmetro. Quando utiliza o parâmetro Obrigatório, o sistema solicita ao utilizador o valor do parâmetro necessário. Quando utiliza a palavra-chave Lançamento, o comando para e apresenta o registo de erro.
Por exemplo, a palavra-chave lançar na subexpressão do parâmetro faz do parâmetro Caminho um parâmetro necessário na função.
Neste caso, a palavra-chave Lançamento lança uma corda de mensagem, mas é a presença da palavra-chave Lançamento que gera o erro de terminação se o parâmetro Caminho não for especificado. A expressão que se 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
}