Se ocorrer um erro no sistema ? É melhor mostrar uma mensagem educada para nosso usuário com um código para a referência do erro? Será que paramos para pensar nisso?
Na realidade é muito importante termos esta informação armazenada, acessível e centralizada em um único lugar. Quando desenvolvemos, nunca esperamos que ocorra um erro na aplicação pois é importante sempre fugir dele como "Diabo foge da cruz", mas estamos careca de saber que o "Bug" vai ocorrer mais cedo ou mais tarde.
Também é legal saber da saúde do sistema o que está acontecendo com ele neste momento, como uma pessoa que tem um leve resfriado mas se não cuidar da forma adequada pode levar a morte.
Desenvolvimento Orientado exceção
Conceito é capturar da aplicação os erros e falhas com a maior quantidade de informações possíveis do cliente, acredite somente o erro não vai ser o suficiente para sanar todos os problemas imagine um iceberg, então um erro e só a ponta.
Um grande exemplo de usar EDD é o serviço Windows Error Reporting. A Microsoft vem registando erros em seus produtos a anos, depois de analisar os dados eles chegar a algumas conclusões interessantes:
- Fixação de 20% dos bugs pode resolver 80% dos problemas dos clientes.
- Respondendo 1% dos erros resolveria 50% dos problemas dos clientes. (http://msdn.microsoft.com/en-us/windows/hardware/gg487440)
Reporting Services erro
Como foi dito anteriormente você precisa de um local para centralizar os erros de seu aplicativo e falhas. Então sugiro que utilize uma ferramenta pre-existente para fazer isso. Implementar a sua própria solução é tentador, mas não é sempre a melhor ideia imagine sua aplicação no mercado com problemas na geração de logs, irônico mas é muito desagradável.
Então aqui estão alguns sistemas:
Particularmente dou preferencia ao Elmah, pois já trabalhei com ele sem problemas e uma grande vantagem é que não necessita de alterar muito o código da sua aplicação, ou seja, ele trabalha bem desacoplado à sua solução.
Então, se nunca pensou que pode acontecer se a aplicação der erro comece a pensar.