Cuidado ao tratar exceção genérica (catch Exception)

Em muitos casos, o tratamento de exceção é uma tarefa muito fácil. Afinal, é só chegar até o bloco de código que pode gerar uma exceção e colocar um código como o abaixo:

   1: try
   2: {
   3:     // Algum código
   4: }
   5: catch (Exception ex)
   6: {
   7:     // Alguma ação
   8: }

Certo? Errado!

Apesar de ser a maneira mais simples, este tipo de abordagem apresenta diversos problemas.

Saiba qual exceção ocorreu e efetue o tratamento correto.

É muito interessante tratar as exceções específicas, para que você efetue um tratamento específico, seja uma mensagem de erro para o cliente ou a gravação de um log.

Algumas exceções não devem ser tratadas.

Dependendo da situação, tentar efetuar um tratamento pode ser em vão. Em casos como OutOfMemoryException, ou no unload de um AppDomain, não será possível alocar novos objetos, propriedades, etc.

Existem outras observações em relação a este tratamento. Mas estes dois são fundamentais e devem ser levados em consideração.

Abraços.

No Comments