si j'utilise une application .net et que cette application se bloque fréquemment. Je veux offrir un processus de récupération après un accident, après l'accident, un message sera affiché à l'utilisateur offrant de redémarrer l'application. comment est-il possible d'écrire le code qui le fait dans l'application et qui continue de fonctionner après son crash! ressemble à une étrange boucle de code, mais j'aimerais connaître votre expérience à ce sujet.comment détecter les plantages d'application?
Répondre
Vous pouvez vous abonner à l'événement AppDomain.CurrentDomain.UnhandledException
et effectuer les opérations depuis le gestionnaire d'événements.
mais si l'application plantait, cet événement serait-il encore déclenché? Je ne trouve pas logique que le code dans l'application continue de fonctionner après un crash –
Après le crash, il sera déclenché. Et veille permettrait d'envoyer un rapport de bug à l'email ou au service de rapport. –
@Ali Tarhini: comme le dit msdn [À compter de la version 4 du .NET Framework, cet événement n'est pas déclenché pour les exceptions qui corrompent l'état du processus] (http://msdn.microsoft.com/fr-fr/library/ system.appdomain.unhandledexception.aspx). AppDomain sera déchargé de toute façon. Le but de cet événement est d'exécuter une logique de récupération. –
Qu'est-ce que cela signifie avec un accident? Si vous obtenez une exception, vous pouvez utiliser try and catch pour gérer ces erreurs.
S'il n'y a pas d'exception, vous devriez essayer de changer le code afin que le programme ne plante pas.
EDIT: le dernier est possible si, par ex. utiliser les mêmes variables dans plusieurs threads.
Écrivez le code dans la méthode Main. (En supposant qu'il s'agit d'une application Windows ou d'une application console, elle en aura une).
Fondamentalement, votre principale méthode finit par regarder quelque chose comme ceci:
public static Main(string[] args)
{
try
{
RunApplication(args);
}
catch(Exception ex)
{
RunCrashRecovery(args, ex);
}
}
Où RunApplication
est ce que vous avez mis en Main
l'origine et RunCrashRecovery
est le code qui envoie les informations de l'accident et demande à l'utilisateur si elles vouloir redémarrer.
- 1. Déboguer les plantages d'Internet Explorer
- 2. Comment déboguer des plantages aléatoires?
- 3. cartes android voir les plantages application
- 4. Shark outil sur les plantages de l'iPhone
- 5. gvim - omnicompletion sur les plantages ftp distants
- 6. Comment éviter les plantages lorsque le paramètre est nul
- 7. Comment gérez-vous les plantages dans vos applications iPhone?
- 8. Importer des plantages XML Excel
- 9. D'où viennent les plantages "Appel de fonction virtuelle pure"?
- 10. Comment détecter les répondeurs automatiques
- 11. comment détecter les importations inutilisées?
- 12. plantages aléatoires de mon application
- 13. application lors du chargement des plantages initialement
- 14. Les plantages d'application dus à la mémoire faible
- 15. empêcher les plantages de la table MyISAM mysql
- 16. Pourquoi tester les plantages en utilisant NUnit/TestDriven.Net2.0?
- 17. kABPersonAddressProperty provoque des plantages sous ABAddressBookGetPersonWithRecordID
- 18. System.UnauthorizedAccessException dans mscorwks.dll provoquant des plantages d'applications
- 19. UIPickerView provoque des plantages dans iOS4
- 20. Débogage de plantages JVM sous Windows
- 21. Programme de plantages d'insertion de programme
- 22. Nullables? Les détecter
- 23. Comment détecter les erreurs de compileall.compile_dir?
- 24. Comment détecter les plug-ins du navigateur?
- 25. Comment détecter les combos ALT dans Silverlight?
- 26. Comment puis-je détecter les exceptions globales?
- 27. Comment détecter les paramètres communs de l'iPhone?
- 28. Comment détecter les canaux vidéo illisibles?
- 29. Comment détecter les modifications dans un objet?
- 30. Comment détecter les contacts sur UIStatusBar/iPhone
Je suggère également que vous offriez de soumettre les détails de l'accident ainsi vous pouvez corriger ces bogues. :) –