Eu li que devemos capturar apenas exceções que podem ser tratadas, o que torna a captura da classe de exceção base (C # neste caso) uma má idéia (por outras razões). Atualmente, faço parte de um projeto no qual, até agora, ainda não vi nada além da exceção básica sendo capturada. Mencionei que é considerado uma prática ruim fazê-lo, mas a resposta foi "Este serviço precisa ser executado 24 horas por dia, 7 dias por semana, e é assim que é".
Como não tive uma boa resposta sobre como lidar adequadamente com exceções em um programa que precisa ser executado 24/7, agora estou aqui. Não consegui encontrar nenhuma informação / sugestão sobre como lidar com o tratamento de exceções em programas / serviços "críticos" que precisam ser executados o tempo todo (e, neste caso, acredito que pode ser bom se o serviço estiver inativo por um minuto ou dois, portanto, nem mesmo críticos). Eu entendo que depende da natureza exata do programa. Os requisitos para um programa que pode causar problemas com risco de vida são bastante diferentes em comparação com um scanner de registro para um jogo online.
Dois exemplos:
1: Um serviço de digitação antecipada para clientes das ferrovias britânicas, usado quando eles pesquisam on-line estações ferroviárias.
2: Um programa que controla automaticamente os comutadores ferroviários das ferrovias acima, com base em informações em tempo real fornecidas por vários sensores nos trilhos, trens etc.
O primeiro programa provavelmente não causaria um grande problema se fosse interrompido por um minuto ou dois, sendo que o último poderia causar vítimas humanas. Sugestões sobre como lidar com cada um? Ponteiro para onde posso encontrar mais informações e pensamentos sobre esse assunto?
catch Exception
. Isso não significa que o seu programa funcione , significa que as falhas permitem que o estado do aplicativo seja corrompido enquanto continua sendo executado, um lugar muito mais perigoso para se estar. Um caiu programa pode ser desastroso, mas um programa que está em um estado inválido, mas ainda realizar ações pode ser ativamente desastroso.