Tratando erros no C# (C Sharp)
1.050 visualizações
Todos os erros gerados em tempo de execução na plataforma .NET geram uma exceção. Existe várias formas de tratar esses erros ao invés de explodir o erro para o usuário. Então vamos lá:
1) Alterando o arquivo web.config para enviar o usuário para uma página amigável.
<CUSTOMERRORS mode="On" defaultredirect="Error.aspx"> </CUSTOMERRORS>
Incluindo o código acima no arquivo web.config o usuário será enviado para página Error.aspx após qualquer erro ocorrido no sistema. Nessa página você pode informar ao usuário que ocorreu um erro e informar alguns procedimentos.
2) Utilizando o “try catch”:
Try{
//seu código
Int a = 0;
Int x = 35/a;
}catch(Exception ex){
//Incluir ações para tratar o erro. (verificar item 5)
}finnaly{
//Sempre excuta, mesmo não dando erro.
}
Utilizando o código acima, você inclui todo seu código dentro do bloco try, e se ocorrer qualquer erro, você pode tratá-lo dentro do bloco catch, que pode ser exibir o erro, gravar o erro, etc. O bloco finnaly sempre é executado, ocorrendo o erro ou não.
3) Utilizando a opção “override void OnError”:
protected override void OnError(EventArgs e){
//Incluir ações para tratar o erro. (verificar item 5)
}
Incluindo o código acima, se ocorrer qualquer erro no sistema, o fluxo de execução será direcionado para dentro desse método. Você pode incluir o método acima na página base e o método será herdado por todas as páginas.
4) Application_Error() no global.asasx
void Application_Error(object sender, EventArgs e)
{
//Incluir ações para tratar o erro. (verificar item 5)
}
Incluindo o código acima no global.asax, se ocorrer qualquer erro no sistema, o fluxo de execução será direcionado para dentro desse método.
5) *Utilize a função Server.GetLastError() para receber o Exception do erro, essa
possui todas as informações sobre o erro, que podem ser enviadas por e-mail ou armazenadas no banco. As informações conditas no exception são essas:
Exception ex = Server.GetLastError(); ex.Message //menssagem do erro “Tentativa de divisão por zero.” ex.Source //nome do aplicativo ou do objeto “App_Web_3v5oxec8” ex.TargetSite// metodo que lançou a exeção “VoidPage_Load(System.Object, System.EventArgs)” StackTrace trace = new StackTrace(ex, true); trace.GetFrame(0).GetFileName().ToString()// Caminho do arquivo que gerou a execeção “c:\Users\luis.gustavo\Documents\Visual Studio 2010\WebSites\WebSite11\Default.aspx.cs” trace.GetFrame(0).GetFileLineNumber().ToString()// linha quegerou a execeção “42”
Segue outras informações importantes para ser armazenadas:
getData()// a Data que ocorreu o erro "10/10/201123:45:33" Request.ServerVariables["HTTP_REFERER"] // endereço da página que gerou o erro "<a href="http://www.legal.com.br/lista_requisicoes.aspx">http://www.legal.com.br/lista_requisicoes.aspx</a> Request.ServerVariables["HTTP_USER_AGENT"]// agente “Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;WOW64; Trident/5.0)” Request.UserHostAddress// ip do usuário “189.112.142.193”
Agradeço a atenção de todos, espero que o post seja útil. Qualquer dúvida ou sugestão deixe seu comentário abaixo.
-->











Ótimo artigo! Parabéns pela iniciativa.