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 try ocorrer um erro irrecuperável, o controle é transferido para o bloco catch. No caso de não haver erros, o bloco catch é ignorado.
  • No bloco catch, a variável automática $PSItem (ou $_) do tipo ErrorRecord está 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 catch e finally ao 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:

everything about exceptionsdocs.microsoft.com