NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosCertificacoes : Programandovbnet012
Quer receber novidades e e-books gratuitos?

Programando com VB.NET

 

GERENCIANDO ERROS E EXCEÇÕES (Continuação)

 

Neste tutorial você vai aprender a tratar os erros que podem ocorrer em seus programas em tempo de execução.

 

TRY CATCH

 

Até agora você aprendeu como utilizar o Visual Studio para resolver erros de sintaxe e lógicos. À partir deste item você aprenderá a tratar erros de runtime através do Try...Catch, que é conhecido como uma estrutura de tratamento de erros ou estrutura de tratamento de exceções. Você pode usá-lo para reconhecer qual o erro de runtime esta ocorrendo no seu programa e através disso emitir uma mensagem de erro adequada e ajustar seu programa com as condições necessárias para que ele continue executando.

 

Um exemplo bem comum, mas que permite que ilustremos bem como os erros de runtime ocorrem  e como tratá-los é o exemplo da leitura do drive de disquete.

 

Para esse exemplo será necessário um disquete com um arquivo nele. Vamos colocar um arquivo de imagem, assim você já aprende como abrir um arquivo de imagem no seu programa.

 

1 - Pegue um disquete - o ideal é que não tenha nenhum arquivo nele ou pelo menos o espaço necessário para a imagem - coloque o no drive A.

 

2 - Copie para o disquete uma imagem, no nosso exercício estou colocando a imagem inverno.jpg, porque ela já vem com o Windows XP e fica armazenada na pasta amostra de imagens dentro de Meus Documentos > Minhas Imagens > Amostra de imagens. Fique a vontade para colocar outra imagem.

 

3 - Agora no Visual Studio crie um novo programa chamado TryCatch do tipo Windows Application.

 

 

4 - Arraste para o Form1 os seguintes controles:

 

» 1 Button

» 1 PictureBox

 

5 - Mude a propriedade Text do Button1 para “Testar Drive”.

 

6 - Organize os controles como a figura abaixo:

 

 

Eu redimensionei tanto o tamanho do Form1 como o tamanho do PictureBox1, você pode fazer o mesmo utilizando as guias.

 

7 - De um clique duplo sobre o Button1 e digite o seguinte código:

 

PictureBox1.Image = System.Drawing.Bitmap.FromFile(“a:\inverno.jpg”)

 

8 - Execute sua aplicação.

 

9 - Clique no botão Testar Drive, a imagem deve abrir no Form como a seguir:

 

 

10 - Pare a execução do programa.

 

11 - Tire o disquete do drive.

 

12 - Execute novamente o programa e clique no botão Testar Drive.

 

O programa não consegue encontrar o arquivo, acontece então um erro de runtime, que para bruscamente a execução do programa emitindo a seguinte caixa de diálogo:

 

 

Aparece também uma seta verde no painel de código do Visual Studio na linha que gerou o erro.

 

 

13 - Clique no botão Continue para fechar o programa.

 

Vamos agora implementar o código que faz o tratamento do erro.

 

14 - Modifique o código do Evento do Button1 para o seguinte:

 

Try

            PictureBox1.Image = System.Drawing.Bitmap.FromFile(“a:\inverno.jpg”)

        Catch

            MsgBox(“Insira o disquete no drive A”)

        End Try

 

Você não precisa digitar denovo a linha que executa a leitura da imagem do disquete. Apenas acrescente o Try..Catch..End Try e o código responsavel por emitir a mensagem de erro.

 

15 - Execute a aplicação.

 

16 - Sem o disquete no drive clique no botão Testar Drive.

 

 

Perceba que agora ele mostra a caixa de dialógo com a mensagem que especificamos. Isso é muito mais elegante do que o erro gerando anteriormente.

 

17 - Clique no botão OK.

 

18 - Insira o disquete com a imagem no drive e clique em OK.

 

19 - Feche a aplicação.

 

Vamos analizar agora o bloco de código responsável pelo tratamento do erro.

 

Primeiramente segue a sintaxe do Try...Catch:

 

Try

         Código executado se nenhum erro acontecer

Catch

         Código executado se houver erro

Finally

         Opcional, sempre é executado

End Try

 

O código fica sempre após a palavra reservada Try, se algum erro acontecer no processamento deste código o programa vai imediatamente para o bloco Catch que é responsável pelo tratamento do erro. O Finally é opcional, ele é sempre executado, com erro ou não. O End Try fecha o bloco de tratamento.

 

No nosso exemplo colocamos o código que lê a imagem dentro do Try, e no Catch o código que abre a caixa de dialógo pedindo para inserir o disquete no drive A.

 

Se nenhum erro ocorrer é executado apenas o código dentro do Try, senão ele vai para o Catch. Pedindo para inserir o disquete no drive A.

 

Try

  PictureBox1.Image = System.Drawing.Bitmap.FromFile(“a:\inverno.jpg”)

Catch

  MsgBox(“Insira o disquete no drive A”)

End Try

 

Vamos agora implementar o Finally no nosso código.

 

20 - Altere o código do evento do Button1 para o seguinte:

 

Try

  PictureBox1.Image = System.Drawing.Bitmap.FromFile(“a:\inverno.jpg”)

Catch

  MsgBox(“Insira o disquete no drive A”)

Finally

  MsgBox(“Código executado no Finally”)

End Try

 

Você não precisa mudar o código anterior, apenas acrescentar o Finally, como exemplo de uso do Finally apenas vamos exibir mais uma caixa de diálogo.

 

21 - Execute a aplicação.

 

22 - Teste com e sem disque do drive. Vai ver que a mensagem do Finally apareçe nas duas alternativas, ou seja com e sem erro.

 

 

A tabela a seguir mostra o que ocasiona a maior parte dos erros de runtime:

 

 

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2024 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI