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 curta
Descreve a throw palavra-chave que gera um erro de encerramento.
Descrição longa
A throw palavra-chave causa um erro de encerramento. Você pode usar a throw palavra-chave para interromper o processamento de um comando, função ou script.
Por exemplo, você pode usar a throw palavra-chave no bloco de script de uma if instrução para responder a uma condição ou no catch bloco de uma try-catch-finally instrução.
A throw palavra-chave 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 é a throw seguinte:
throw [<expression>]
A expressão na throw sintaxe é opcional. Quando a throw instrução não aparece em um catch bloco e não inclui uma expressão, ela gera um erro ScriptHalted .
throw
Exception: ScriptHalted
Se a throw palavra-chave for usada em um catch bloco sem uma expressão, ela lançará o RuntimeException atual novamente. Para obter mais informações, consulte about_Try_Catch_Finally.
Lançando uma cadeia de caracteres
A expressão opcional em uma throw instrução pode ser uma cadeia de caracteres, conforme mostrado no exemplo a seguir:
throw "This is an error."
Exception: This is an error.
Lançando 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:
throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)
Você pode usar a propriedade TargetObject do objeto ErrorRecord na $Error variável automática para examinar o erro.
$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
Você também throw pode um objeto ErrorRecord ou uma exceção .NET. O exemplo a seguir usa a throw palavra-chave para gerar um objeto System.FormatException .
$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.
O erro resultante
A throw palavra-chave 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 dependendo do objeto lançado.
O throw objeto é encapsulado em um objeto ErrorRecord e o objeto ErrorRecord é salvo automaticamente na $Error variável automática.
Usar throw para criar um parâmetro obrigatório
Ao contrário das versões anteriores do PowerShell, não use a throw palavra-chave para validação de parâmetro. Veja about_Functions_Advanced_Parameters para a maneira correta.