2010-10-14 11 views
1

Je trouve l'option Force close Report très utile en tant que développeur - la trace de la pile est vraiment utile à voir et j'ai pu résoudre de nombreux bugs en l'utilisant.Forcer l'option d'erreur de fermeture de rapport: utilisation dans les exceptions gérées?

Cependant, il y a des endroits dans mon application où (à juste titre) j'ai utilisé une instruction try/catch pour gérer les exceptions. Le problème étant que cela empêche la fermeture d'une force et que je ne peux donc pas obtenir les données de l'erreur, ce qui serait utile pour corriger les bugs ou même simplement donner de meilleurs messages d'erreur. Est-il possible de signaler une exception qui a été traitée?

Et quelle version d'Android l'option Rapport a-t-elle été utilisée?

Répondre

1

Si vous gérez vous-même l'exception, pourquoi n'appelez-vous pas une fonction pour le signaler?

try { 
    [your code] 
} catch (BadCodeException e) { 
    [handle error] 
    MyErrorHandler.ReportError(e); 
} 

Et puis

void ReportError(Exception e) { 
    // Take the stack trace, error message, and what ever else comes to your mind, 
    // and mail it or store it somewhere or whatever. 
} 

Quant à votre autre question - je crois était Android 2.0. Ensuite, Android 2.2 a introduit des traces de pile dans des situations ANR (l'application ne répond pas).

Autre que cela, une fois qu'une exécution est gérée, elle est gérée. Vous pouvez choisir de ne pas le gérer et donner à votre thread un gestionnaire d'exceptions non géré, mais cela rendra la récupération de l'erreur difficile.

+0

Excellent, merci pour toutes les infos! Je suis relativement novice en ce qui concerne l'utilisation du Web dans mon application, et la seule façon de penser à m'envoyer l'information est par courriel ... des suggestions? –

+0

Je recommande vivement de l'envoyer par courriel, et seulement après avoir obtenu le consentement de l'utilisateur. Le fait de l'envoyer tranquillement d'une autre façon rendrait les gens très en colère. C'est aussi très simple - il suffit de créer une chaîne avec toutes les informations et utiliser l'intention ACTION_SENDTO avec votre adresse e-mail, cela va utiliser le client de messagerie préféré de l'utilisateur et leur donner une chance de regarder les données envoyées. – EboMike