J'essaie d'intercepter une exception de connexion lancée par la classe à laquelle appartient readerAccount dans le code ci-dessous. Toutefois, la seule partie de l'instruction catch qui arrive est la fonction Log.w(). J'avais l'impression que pendant une déclaration catch, vous avez la possibilité de récupérer des erreurs, mais le programme noircit complètement l'écran et la boîte de dialogue n'est pas affichée, pas plus que le Toast. Que se passe t-il ici?Gestion des exceptions Android, arrêt du programme
Répondre
J'ai la réponse à cette question. le code qui doit être exécuté après l'interaction du dialogue doit toujours être placé dans onClickListener pour la boîte de dialogue spécifique affichée. la fonction login() doit donc être appelée depuis onClickListener et si une connexion échoue, la boîte de dialogue doit être rappelée jusqu'à ce qu'une connexion réussisse.
merci quand même tout le monde.
Il est possible que l'appel .login() entraîne des modifications des autres objets que vous utilisez dans l'instruction catch (spécialement lorsque quelque chose se passe mal et qu'une exception est levée), ou au verrouillage de ressources liées d'une manière ou d'une autre avec eux, ce qui pourrait expliquer pourquoi les appels .show() et .makeTest (...) n'agissent pas comme vous l'attendiez, dans l'instruction catch. Vous voudrez peut-être essayer d'imprimer des attributs et des informations sur l'objet cmDialog, avant l'instruction try, et dans l'instruction catch, avant l'appel .show(), pour pouvoir comparer et vérifier si quelque chose a modifié l'état de l'objet ou l'état de l'une de ses ressources utilisées.
J'espère que cela aide.
- 1. Gestion des exceptions Java
- 2. C# Gestion des exceptions
- 3. Gestion des exceptions Websphere
- 4. Gestion du problème des exceptions non gérées
- 5. Gestion des exceptions au démarrage du service
- 6. Gestion des exceptions GetGlobalResourceObject
- 7. DB2 Gestion des exceptions
- 8. Parallel.Invoke - Gestion des exceptions
- 9. Gestion des exceptions
- 10. gestion des exceptions
- 11. UpdatePanel Gestion des exceptions
- 12. Python Gestion des exceptions
- 13. Gestion des exceptions
- 14. Prism: Gestion des exceptions?
- 15. Gestion des exceptions jQuery
- 16. Arrêt du programme d'installation entre
- 17. gestion des exceptions en C++
- 18. Gestion des exceptions dans FitNesse
- 19. Gestion des exceptions ASP.NET MVC
- 20. gestion des exceptions dans C#
- 21. Stratégie de gestion des exceptions
- 22. Problème de gestion des exceptions
- 23. Pratiques de gestion des exceptions
- 24. gestion des exceptions pour optparse de python
- 25. Grails Dupliquer Gestion des exceptions
- 26. service web gestion des exceptions
- 27. Gestion des exceptions dans AppDomain.CurrentDomain.UnhandledException
- 28. .NET PInvoke Gestion des exceptions
- 29. gestion des exceptions non signalées
- 30. Gestion des exceptions dans Jsp
Ce code s'exécute-t-il dans le thread de l'interface utilisateur? –
est-il possible que votre code dans l'instruction catch lève une autre exception? (par exemple cmDialog est null, donc cmDialog.show() lèverait une exception). Que voyez-vous dans logcat? msg d'exception, trace de pile ?? –
cmDialog est défini plus tôt. sinon vous auriez une erreur de compilation ... non? Je peux afficher la boîte de dialogue en dehors de l'instruction catch et afficher le Toast sans problème. mais cela ne fonctionnera pas dans l'instruction catch. de plus, l'appel Log.w() fonctionne bien: je peux le voir dans logcat. Le problème est que lorsque l'exception se produit, l'écran devient noir, ce qui est plutôt inattendu, donc il semble que la sortie vidéo s'arrête simplement, mais la journalisation fonctionne très bien. Pourquoi est-ce? – moonlightcheese