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: 


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.