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 : Programandocsharp017
Quer receber novidades e e-books gratuitos?

Programando com C#

 

GERENCIANDO ERROS E EXCEÇÕES

 

Usando a estrutura de tratamento de erros:

 

try..catch..finally

 

Até agora você aprendeu como utilizar o Visual Studio .NET para resolver erros de sintaxe e lógicos. A 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 seguites controles:

 

» 1 Button

 

» 1 PictureBox

 

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

 

6 - Organize os controles como a figura abaixo:

 

 

Eu redimencionei 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.Image.FromFile(@"a:\inverno.jpg");

 

Quando for passar um caminho como string utilize o @ antes como fizemos no código acima.

 

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.

 

A linha com o erro também fica amarela no painel de código.

 

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

 

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.Image.FromFile(@"a:\inverno.jpg");

 }

 catch

 {

 MessageBox.Show("Insira o disquete no drive A");

 }

 

Você não precisa digitar denovo a linha que executa a leitura da imagem do disquete. Apenas acrescente o try..catch 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

}

 

O código fica sempre após a palavra reservada try, se algum erro aconteçer no processamento deste código o programa vai imediatamente para o bloco catch que é responsavel pelo tratamento do erro. O finally é opcional, ele é sempre executado, com erro ou não. 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.Image.FromFile(@"a:\inverno.jpg");

 }

 catch

 {

 MessageBox.Show("Insira o disquete no drive A");

 }

 

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.Image.FromFile(@"a:\inverno.jpg");

 }

 catch

 {

 MessageBox.Show("Insira o disquete no drive A");

 }

 

finally

{

 MessageBox.Show("Código executado no finally");

}

 

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