DEV Community

Introdução ao tratamento de erros

Seguindo com os tutoriais para iniciantes em Powershell, recomendo a leitura do anterior pois vamos seguir dele, vamos conversar um pouco sobre o tratamento de erros. Existem varias formas de fazer isso, mas como o foco são os principiantes vamos sempre pensar na abordagem com um bom custo beneficio entre a entrega e a curva de aprendizagem.

Para tratarmos erros, vamos usar a estrutura Try-Catch, ela funciona de uma forma bem simples.
Vamos criar dois blocos, o TRY onde colocamos o que queremos fazer e o CATCH, onde colocamos a mensagem de erro que queremos mostrar, no caso de algum procedimento descrito no bloco anterior falhar.

Para exemplificar ele, vamos continuar com o nosso jeito difícil de validar caminhos. A ideia que aplicaremos aqui, é no caso de qualquer problema, retornarmos uma mensagem de erro.

Traduzindo isso para código, teremos:

Nossa validação de erros está funcionando, como podemos ver nesse retorno quando informei um caminho que não existia:
Retorno Catch

Mas caso tenha apenas executado nosso script, provavelmente não viu essa mensagem, uma vez que não estamos dando qualquer tratamento a continuidade do script caso tenhamos problemas.

Existem algumas formas de sairmos disso, mas utilizaremos aqui a mais simples e frustrante possível para o usuário.
Vamos apenas quebrar o script depois de que mostrarmos o erro.
Faremos isso por meio do combo PAUSE + EXIT, com o primeiro comando vamos pausar a tela para que seja possível ler o que está escrito, e com o segundo iremos fechar o prompt.

Essa abordagem não é a melhor, mas aproveitaremos esse momento para conhecer esses dois comandos e essa possibilidade, já que em alguns momentos, fara sentido pausar ou apenas encerrar tudo.

Adicionaremos o combo em nosso catch, que terminará dessa forma:

Como retorno, teremos a mensagem:
PAUSE

E assim que apertarmos enter, o terminal será encerrado.

Temos alguns pontos de atenção sobre o que vimos hoje, o primeiro está relacionado ao idioma da mensagem, ele vai variar conforme a do sistema. O idioma do sistema será o idioma do retorno do erro.

O outro ponto, é a mensagem de erro em si, que para essa situação acabou não sendo muito clara, informando apenas que não conseguiu localizar algo com o atributo Diretório.

É possível tratar essas mensagens, mas o objetivo aqui não é se aprofundar tanto sobre cada componente, por isso recomendo que pesquise mais sobre como implementar o Try-Catch no Powershell.

Top comments (0)