Se você é como eu, não só você nunca cometeu um erro em seu script, mas todas as forças externas que estão fora de seu controle também sempre funcionam como pretendido… Fazendo uma pequena pausa no sarcasmo, o que é que as pessoas sem o toque mágico PowerShell fazem? Eles embarcam na batalha antiga que se arrasta há gerações chamada manipulação de erros.

PowerShell Error Handling Example

Error handling with PowerShell helps ensure that an unexpected exception does not let a script continue to cause issues., Vamos dar uma olhada em um script que vai garantir que apenas as pessoas legais têm acesso a todas as coisas legais. (See Get-Content)

funciona muito bem! No entanto, Kris Powell descobriu sobre a lista legal, e com raiva de ser deixado de fora da lista, ele executa uma ação que prova que estamos certos para mantê-lo fora. Ele apaga pessoas fixes.csv.

a Próxima vez que o script é executado, podemos obter uma exceção:

Com um espaço em branco $UpdatedCoolList variável remove todos de acesso. Nada fixe, Kris.,

exceções

Antes de começarmos a lidar com a sabotagem, é importante aprender sobre exceções. Uma exceção é um erro ou resultado inesperado que o PowerShell precisa que você trate.

Existem dois tipos de exceções: terminação e não terminação. A terminar as excepções pára o programa em execução. Excepções sem fim apenas escrevam para o oleoduto de erros.

fazendo uma exceção não-terminante uma exceção terminante é simples. Você pode definir o parâmetro do comando para-ErrorAction para parar.,

$UpdatedCoolList = Get-Content \\FileShare\Location\CoolPeople.csv -ErrorAction Stop

Você também pode definir a ação padrão de todos os erros de stop definindo a variável $ErrorActionPreference = "Stop".

na maioria dos casos, um cmdlet gera uma exceção não-terminante, mas o tratamento de erros com PowerShell requer uma exceção terminante para o trabalho.

Try/Catch/Finally

After the -ErrorAction is set to Stop, we can wrap it in a Try / Catch block., Try é onde executamos o comando, e Catch é o que irá correr se correr para um erro de terminação. (Veja Out-File)

neste bloco de script, capturamos a exceção e a colocamos em um arquivo de log. Break foi usado para sair do script para que ele não continuasse. Se tivéssemos deixado o bloco de captura vazio, ele iria absorver o erro e continuar o script.

A última peça do tratamento de erros com um bloco de tentativa/captura / fim é o Finally., Isto é usado para fornecer ações que sempre serão executadas antes de sair do script (ou continuar). Isto é usado principalmente para limpeza. Você pode usá-lo para fechar conexões de banco de dados, remover arquivos, ou fechar bloqueios de arquivos. Finally permite-lhe reverter quaisquer alterações feitas como resultado do programa, quer seja encontrada ou não uma excepção.

conclusão

que é ele para o básico. Sempre que você está lidando com elementos que são voláteis ou fora de seu controle, manipulação de erros é uma ótima maneira de se certificar de que seu script não vai causar problemas se as coisas derem errado.