Texto falando sobre a importancia de tratamento de erro em aplicações em C#
Quando criamos um programa, precisamos levar em consideração todos os erros que podem acontecer em nosso sistema por exemplo, se em um cadastro de estoque, temos na tabela um campo de quantidade que só aceita valores numéricos, e na nossa tela de cadastro de produtos, esse mesmo campo possibilita que nosso usuários possa escrever letras, ao inserir no banco, ira dar erro no sistema, falando que foi inserido caracteres incorretos para um determinado campo.
A melhor maneira de tratarmos isso seria fazendo uma verificação dos valores digitados pelo usuário ao sair do campo, ou ate mesmo antes de inserir os registros no banco de dados.
Trabalhei por bastante tempo comDelphi, e quando acontecia algum erro no sistema apenas era apresentado uma mensagem e o sistema continuava,ja em C#, quando acontece algum erro que não foi tratado, o sistema trava e aparece aquela famosa tela do windows que o sistema parou de responder e da a opção para finalizar.
De uma maneira bem simples podemos evitar isso em nosso projeto, basta usarmos o bloco de tratamento de erro Try Catch.
A estrutura do Try é a seguinte:
try
{
}
catch (Exception)
{
throw;
}
De uma maneira simples o funcionamento do Try é a seguinte : Toda a exceção que acontecer dentro do codigo contido entre as chaves do try, sera chamando o Catch, ou seja, ali dentro do Catch que iremos colocar o nosso tratamento, para que uma mensagem estranha não chegue ate nosso usuário.
O código abaixo foi criado para proporcionar um erro:
int[] MeuVetor = new int[5];
for (int contador = 0; contador < 10; contador++)
{
MeuVetor[contador] = contador;
}
O que acontecera: Criei um vetor de variaveis inteiras de 5 posições, logo abaixo da criacao do vetor, temos um for que sera executado 10 vezes, quando passar da quinta vez, ira dar um erro, pois não temos mais de 5 posições no vetor.
Ira nos apresentar a seguinte mensagem : O índice estava fora dos limites da matriz.
Para efetuarmos o tratamento desse erro, basta colocarmos dentro do bloco Try, ficando assim :
try
{
int[] MeuVetor = new int[5];
for (int contador = 0; contador < 10; contador++)
{
MeuVetor[contador] = contador;
}
}
catch (Exception)
{
throw;
}
Ao executarmos ira dar o mesmo erro, e o sistema mesmo assim ira travar, o que podemos fazer é personalizar a mensagem que ira ser mostrada ao nosso usuario, para isso, no lugar do throw dentro do bloco Catch iremos colocar um MessageBox onde iremos passar a mensagem que queremos, ira ficar desse jeito:
try
{
int[] MeuVetor = new int[5];
for (int contador = 0; contador < 10; contador++)
{
MeuVetor[contador] = contador;
}
}
catch (Exception)
{
MessageBox.Show("Aconteceu um erro ao preencher o vetor");
}
Ao dar o erro acima, a mensagem é mostrada na tela, e apos o usuario clicar em OK, o sistema continua normalmente.
Se quisermos, podemos deixar o erro passar e o usuario nao ficar nem sabendo, basta nao colocarmos nada dentro do bloco Throw.
Esse tratamento pode ser feito somente no metodo que chama outro, por exemplo, tenho um metodo que preenche um grid, esse metodo chama outro metodo que retorna os dados do banco de dados, caso aconteca algum erro durante esse processo, o sistema ira travar.

Mas se colocarmos o tratamento no metodo pai, ao dar o erro em alguns dos metodos filhos, o sistema ira continuar

Este foi um simples texto mostrando como efetuar um tratamento de erro em nossos sitemas, caso tenham alguma dificuldade, podem usar o campo de comentarios ou nosso forum.
Até a Próxima!
Thiago Silva Santos
Microsoft Student Partners
| Comentários |
|
Tweet me!