Tratamento de exceções não previstas na aplicação

Num sistema (web particularmente) agente enche a página de validators, try-catch, alerts, mensagens, máscaras de entrada, etc. tudo visando cercar as possibilidades de erro nas operações dos usuários. Mas ninguém é perfeito!!!!! Alguma coisa sempre passa e quando o usuário fizer aquilo que agente não previu vai gerar aquela página amarela de erro não tratado. Voce pode configurar uma página de erro padrão no web.config. Eu, pessoalmente, não me adaptei bem a esta solução.

Eu costumo fazer o seguinte:

  • Crio um página de erro bem amígável, tipo Erro.aspx ou Erro.htm. Inclusive a mensagem que eu coloco é esta: “Infelizmente o sistema comportou-se de maneira inesperada. A equipe de desenvolvimento foi notificada automaticamente. Esperamos solucionar o problema o mais rápido possível. Tente realizar a mesma operação mais tarde pra verificar se o problema foi corrigido. Pedimos desculpas pelos transtornos causados e contamos com a compreensão de todos.” Claro! Voce pode mudar a mensagem e arrumar bem legal na página.
  • Depois, insiro um item no website chamado Global.asax se já não tiver inserido. Este arquivo dispara vários eventos automaticamente durante a execução da aplicação. Pesquise no help do SDK sobre esse eventos mais comuns: Application_Start, Application_End, Session_Start, Session_End, Application_BeginRequest e o que nós vamos usar, Application_Error. Este evento é disparado sempre que um erro não tratado ocorrer. Se no seu Global.asax este método/evento não estiver declarado voce pode incluir como mostrado abaixo e neste evento nós iremos inserir o nosso tratamento do erro não tratado.

protected void Application_Error(Object sender, EventArgs e)
{
}

  • O código que eu insiro fará duas coisas: primeiro, gravar em um arquivo texto, tipo erros.txt, a exceção que ocorreu e de maneira cumulativa; um abaixo do outro no arquivo. Dessa forma é possível resgatar as exceções que ocorreram ao longo do uso do sistema. Os programadores podem acessar esse arquivo e corrigir os erros do sistema e depois apagá-lo, aguardando novos erros. ;) A segunda coisa é, caso este erro não tenha dado localmente, ou seja, tenha sido um erro gerado pelo usuário final, o sistema irá desviar o browser para a página de erro personalizada que criamos acima. Inclusive essa página pode ter um link para reiniciar o sistema. Se for um erro local, ou seja, na máquina do desenvolvedor, a página amarela com detalhes da exceção pode ser vista normalmente.

Esse arquivo erros.txt pode ser acessado até do url tipo http://www.meusistema.com/erros.txt. Assim o programador pode saber como o sistema anda se comportando de qualquer lugar na rede ou na internet e é dessa forma que ele fica sendo “notificado automaticamente“, como informamos na mensagem que eu coloquei na página de erro personalizado. Claro que depende do programador olhar esse aquivo sempre. Alguns podem querer que o sistema notifique por email. Questão de implementação. Eu prefiro no arquivo mesmo.

Clique aqui e baixe a implementação que fiz pra um sistema. IMPORTANTE: O arquivo não é um DOC. É um ZIP. Renomei…

0 Respostas para “Tratamento de exceções não previstas na aplicação”



  1. Sem comentários ainda

Deixe uma resposta




Categorias

Arquivos

Calendário

Março 2008
D S T Q Q S S
« Fev   Jun »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Desde (04/11/07)

  • 44,832 visitas