Tratamento de Exceções#
Lançamento de Exceções#
- O comando throw "Bad thing happened" cria uma exceção e interrompe a execução do script.
- O cmdlet Write-Error -Message "Houston, we have a problem." -ErrorAction Stop exibe um erro, e a configuração de ErrorAction para Stop faz com que o script pare com esse erro.
Tratamento de Exceções#
O princípio do tratamento de erros no PowerShell é baseado na construção:
try {
# código onde pode ocorrer um erro
}
catch {
# código para tratar o erro
}
finally {
# código que é sempre executado após try/catch
}
- O código no bloco
tryé executado primeiro. - Se durante a execução do
tryocorrer um erro irrecuperável, o controle é transferido para o blococatch. No caso de não haver erros, o blococatché ignorado. - No bloco
catch, a variável automática$PSItem(ou$_) do tipoErrorRecordestá disponível, contendo detalhes da exceção. - O bloco
finallyé sempre executado, independentemente de ter ocorrido um erro ou não. Ele é usado para garantir a execução de código importante, como fechar conexões ou liberar recursos. - É possível usar
catchefinallyao mesmo tempo. Isso permite tratar erros e, ao mesmo tempo, sempre executar ações de finalização, independentemente do resultado.
Exemplo:
try {
throw "Bad thing happened"
}
catch {
Write-Host "Erro: $($_.Exception.Message)" -ForegroundColor Red
}
finally {
Write-Host "Este bloco será sempre executado"
}
Neste exemplo, a exceção é lançada através de throw, depois é capturada no catch, onde a mensagem de erro é exibida, e em seguida, ocorre a execução do finally, onde pode-se colocar o código de finalização.
Esse modelo simplifica a escrita de scripts confiáveis com gerenciamento de erros e limpeza de recursos.
Essa abordagem para exceções ajuda a criar scripts PowerShell mais robustos e fáceis de manter, minimizando interrupções inesperadas e garantindo uma resposta oportuna a erros.
Com mais informações, você pode consultar o link: