J'ai lu que nous ne devrions attraper que les exceptions qui peuvent être gérées, ce qui rend la capture de la classe d'exception de base (C # dans ce cas) une mauvaise idée (en plus d'autres raisons). Je fais actuellement partie d'un projet dans lequel je n'ai jusqu'à présent rien vu d'autre que l'exception de base en cours de capture. J'ai mentionné que cela est considéré comme une mauvaise pratique de le faire, mais la réponse a été: "Ce service doit fonctionner 24 heures sur 24, 7 jours sur 7, c'est ainsi."
Comme je n'ai pas eu de bonne réponse sur la façon de gérer correctement les exceptions dans un programme qui doit s'exécuter 24h / 24 et 7j / 7, je suis maintenant ici. Je n'ai pas réussi à trouver d'informations / suggestions sur la façon de gérer la gestion des exceptions dans les programmes / services "critiques" qui doivent fonctionner 24h / 24 (et dans ce cas, je pense que cela peut être correct si le service est arrêté pendant une minute) ou deux, donc même pas critique). Je comprends que cela dépend de la nature exacte du programme. Les exigences pour un programme qui peut causer des problèmes mortels sont très différentes par rapport à un scanner de journaux pour un jeu en ligne.
Deux exemples:
1: Un service de saisie anticipée pour les clients des chemins de fer britanniques, utilisé lorsqu'ils recherchent en ligne des gares.
2: Un programme qui contrôle automatiquement les commutateurs ferroviaires pour les chemins de fer ci-dessus en fonction des informations en temps réel fournies par divers capteurs dans les voies, les trains, etc.
Le premier programme ne poserait probablement pas de problème majeur s'il était interrompu pendant une minute ou deux, alors que ce dernier pourrait provoquer des pertes humaines. Des suggestions sur la façon de traiter chacun d'eux? Pointeur vers où trouver plus d'informations et de réflexions sur ce problème?
catch Exception
. Cela ne signifie pas que votre programme fonctionne , cela signifie que les échecs permettent à l'état de l'application d'être corrompu pendant qu'il continue à s'exécuter, un endroit beaucoup plus dangereux. Un programme en panne peut être désastreux, mais un programme qui n'est pas valide mais qui exécute toujours des actions peut être activement désastreux.