Olá pessoal, hoje continuaremos a falar sobre tratamento de exceções no C#.
Na primeira parte sobre tratamento de exceções, nós apresentamos a estrutura básica do tratamento de exceções em C# e fizemos um exemplo forçando uma exceção para demonstrar como se comportaria nossa aplicação diante deste cenário.
Hoje, seguiremos nossa série e explicaremos como extrair mais informações sobre a exceção ocorrida, assim podemos melhorar nossa análise e rastreabilidade de problemas.
Para nosso exemplo, crie uma nova aplicação WindowsForms, adicione um botão na mesma e insira o seguinte código no evento Click do botão.
String str = "A";
int num = 0;
try
{
num = Convert.ToInt32(str);
}
catch (Exception E)
{
MessageBox.Show("Ocorreu um erro de conversão.\n" +
"Erro: " + E.Message + "\n" +
"________________________________________________________\n" +
"Pilha de execução: " + E.StackTrace + "\n" +
"________________________________________________________\n" +
"Classe da exceção: " + E.GetType().Name + "\n" +
"________________________________________________________\n" +
"Origem da exceção: " + E.Source + "\n");
}
finally {
MessageBox.Show("Tentativa de conversão realizada");
}
No exemplo acima, ao ocorrer uma exceção exibimos uma mensagem com detalhes desta exceção.
Em “E.Message”, exibimos a mensagem de erro gerada pela exceção.
Em “E.StackTrace”, exbimos a pilha de exceução, ou seja o caminho percorrido pela aplicação até a exceção ser gerada.
Em “E.GetType().Name”, recuperamos o nome da Classe da exceção. Neste caso temos uma FormatException.
Em “E.Source”, exibimos a origem do erro, ou seja, de onde essa exceção foi gerada.
Essas informações são interessantes para alimentarmos um possível Log, e podemos nos ajudar muito na análise e diagnóstico de problemas.
É isso aí pessoal, vamos ficando por aqui, espero que tenham gostado e que as informações passadas sejam úteis no seu dia-a-dia.
Ricardo Coelho.