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.