Ou toute autre conception qui a les widgets gui comme étant le premier port d'escale où une exception non gérée va tuer l'application? Nous voulons tous un principal: "attraper tout" pour des raisons d'économie de visage (bien que dans la plupart des cas cela ne devrait pas avoir de fonction "continue") mais il est impossible d'en implémenter facilement un avec des widgets gui qui sont le premier port d'appel. Est-ce que cette conception est défectueuse ou est-ce que je manque un truc quelque part? Je demande cela parce que je lisais un article par le concepteur de la langue et il a déclaré que la gestion des exceptions devrait être centralisée et la première chose qui m'est apparue dans le mien était le mécanisme des événements WinForm où cela devient difficile. L'équipe WinForm/GUI était-elle à l'écoute, ou était-il trop tard à ce moment-là?Si la gestion des exceptions doit être centralisée, la conception des composants WinForm est-elle incorrecte?
1
A
Répondre
2
Vous pouvez mettre un try/catch autour Application.Run, et gérer Application.ThreadException. Dans les gestionnaires, vous pouvez enregistrer l'exception et quitter. Mis à part ce qui précède, je mets généralement un gestionnaire d'exception autour de tous les appels au Business Tier (et tous les accès aux ressources externes dans le niveau client, par exemple l'exportation vers un fichier) qui affichent une erreur mais ne quittent pas le application.
1
Connaissez-vous Application.ThreadException? Je ne dis pas que c'est nécessairement la meilleure réponse, mais c'est au moins une réponse ...
Questions connexes
- 1. Appel de pile dans la gestion des exceptions
- 2. Gestion des exceptions GetGlobalResourceObject
- 3. DB2 Gestion des exceptions
- 4. Gestion des composants réutilisables
- 5. Python Gestion des exceptions
- 6. Silerlight MVVM Gestion des exceptions
- 7. Pratiques de gestion des exceptions
- 8. .NET PInvoke Gestion des exceptions
- 9. Robuste gestion des exceptions Javascript
- 10. Problème de gestion des exceptions
- 11. Gestion des exceptions/gestion des ressources dans Jersey JAX-RS
- 12. Gestion des exceptions ASP.NET MVC
- 13. lambdas et gestion des exceptions
- 14. Ajout de la gestion des exceptions globales à ASP.NET
- 15. Afficher le numéro de ligne dans la gestion des exceptions
- 16. Application serveur open source pour la gestion des exceptions?
- 17. Réutilisation du code dans la gestion des exceptions
- 18. ELMAH et la gestion des exceptions dans ASP.NET MVC
- 19. Mesure de la surcharge de gestion des exceptions en C++
- 20. Gestion du problème des exceptions non gérées
- 21. Modèles de gestion des exceptions de GCC
- 22. Java Gestion des exceptions dans les "événements"
- 23. Gestion des exceptions d'événements de contrôle ASP.NET
- 24. Gestion des exceptions au démarrage du service
- 25. Gestion des exceptions ASP.Net Ajax côté serveur
- 26. Gestion des exceptions de thread dans WCF
- 27. C# Gestion des exceptions dans les classes
- 28. Gestion des exceptions et messages conviviaux
- 29. journalisation générique des paramètres de la fonction dans la gestion des exceptions
- 30. Gestion des exceptions globales Flex 3
Je pensais que c'était uniquement pour les threads d'arrière-plan par opposition au thread UI principal? Je me souviens qu'il y avait AppDomain.UnhandledException, mais cela a été changé selon 2.00 pour ne plus gérer seulement vous donner une chance de se connecter. Il n'est également pas pris en charge (ThreadException) dans Compact Framework. :( – Quibblesome
Non, Application.ThreadException est explicitement destiné aux threads de l'interface utilisateur, mais si vous avez besoin du support de Compact Framework, vous n'avez pas de chance :( –