msdn29_capa.jpg

Clique aqui para ler todos os artigos desta edição

 

Criando classes para tratamento e log de erros da aplicação

Igor Raphael Alcantara

Este artigo discute

Este artigo usa as seguintes tecnologias

·        Criando uma classe para tratamento de erros;

·        Exibindo informações sobre erros de forma amigável ao usuário;

·        Enviando log de erros por e-mail.

 

Visual Studio 2005, C#.

 

Quando desenvolvemos uma aplicação, um fator que devemos levar em consideração é a qualidade aliada à comunicação e suporte ao cliente. Por mais que um software seja testado e passe pelos diversos controles de qualidade, sempre é possível que no momento em que o sistema esteja em uso pelo cliente algum erro aconteça. Quando isso ocorre, em especial em caso de erros de sistema (as famosas exceptions), o usuário tem uma grande dificuldade em transmitir as reais condições em que o erro aconteceu, isso sem falar nas indecifráveis mensagens do sistema emitidas pelos objetos de exceção. Deste modo, transmitir com o máximo de exatidão possível o erro entre cliente e desenvolvedor, melhora não só a qualidade do sistema, mas também economiza horas de suporte e evita a necessidade de visitas dispendiosas.

Criando uma classe para tratamento de erros

Existem diversas formas de implementar esse tipo de recurso e todas elas começam pela construção de uma classe que trate os erros de forma apropriada. A Listagem 1 mostra uma proposta simples para uma classe para esse tipo de tratamento. Vários outros recursos poderão depois ser incorporados a essa classe como, por exemplo, armazenar os erros em alguma fonte de dados.

A classe criada possui dois construtores que tratam os dois tipos de erros abordados: de sistema (exceptions) e operacionais. Em ambos os casos, após serem obtidas as informações necessárias, um objeto é adicionado em uma coleção estática declarada em uma classe chamada Principal (Listagem 3). No caso de um erro de sistema, um formulário com informações é chamado e exibido imediatamente ao usuário. Talvez chamar um Windows Form de dentro de uma classe planejada para ser “genérica” não seja a melhor prática, mas é a forma mais simples e imediata de mostrar as informações que precisamos para o usuário.

 

Listagem 1. Classe para tratamento de erros

using System;

using System.Collections.Generic;

using System.Text;

 

namespace MSDN_TratamentoErros

{

    public enum gEnmTipoErro

    {

        enmException,

        enmOperacional

    };

 

    [Serializable()]

    public class Erro

    {

 

        private gEnmTipoErro pEnmTipoErro;

        private System.DateTime pDatDataHora;

        private string pStrOrigem;

        private string pStrMensagem;

        private string pStrMensagemCompleta;

        private System.Exception oErroWindows;

 

        public Erro(System.Exception vException, string vTela)

        {

            frmErros oJanela = new frmErros();

 

            pEnmTipoErro = gEnmTipoErro.enmException;

            oErroWindows = vException;

            pDatDataHora = System.DateTime.Now;

...

Quer ler esse conteúdo completo? Tenha acesso completo