Double Possible:
.NET - Quelle est la meilleure façon de mettre en œuvre un "attraper toutes les exceptions gestionnaire"J'ai un .NET console app qui crash et l'affichage d'un message à l'utilisateur. L'ensemble de mon code est dans un
try{<code>} catch(Exception e){<stuff>}
bloc, mais encore des erreurs sont parfois affichés.Dans une application Win32, vous pouvez capturer toutes les exceptions possibles/accidents par l'installation de divers gestionnaires d'exception:
/* C++ exc handlers */ _set_se_translator SetUnhandledExceptionFilter _set_purecall_handler set_terminate set_unexpected _set_invalid_parameter_handler
Quel est l'équivalent dans le .NET monde donc je peut gérer/log/calme tous les possibles cas d'erreur?
Réponses
Trop de publicités?
Juanma
Points
2648
Ricky AH
Points
2366
Cet article dans codeproject par notre hôte Jeff Atwood est ce que vous avez besoin. Inclut le code pour attraper les exceptions non gérées et des bonnes pratiques pour l'affichage d'informations concernant le crash de l'utilisateur.
Drejc
Points
5424
Peli
Points
2112
Soyez conscient que certains exception sont dangereux pour la catch - ou surtout la part insaisissable,
- OutOfMemoryException: tout ce que vous faites dans le gestionnaire catch peut allouer de la mémoire (dans le géré ou non géré côté de la CLR) et ainsi déclencher un autre OOM
- StackOverflowException: selon que le CLR détecté suffisamment tôt, vous pourriez être averti. Pire des cas, il suffit d'tue le processus.