NSSetUncaughtExceptionHandler pas rattraper toutes les erreurs sur iPhone
Je suis en utilisant GTMStackTrace de http://code.google.com/p/google-toolbox-for-mac.
J'ai besoin d'un moyen de test de l'utilisateur final à m'envoyer des erreurs lors de l'application crash. Je sais comment envoyer des données vers mon site, mais le problème est de savoir comment attraper tous les non-traitées erreurs.
J'ai ce code:
void exceptionHandler(NSException *exception) {
NSLog(@"%@", [exception reason]);
NSLog(@"%@", [exception userInfo]);
NSLog(@"%@", GTMStackTraceFromException(exception));
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Error unexpected",@"Info: Can't save record")
message:GTMStackTraceFromException(exception) delegate:nil
cancelButtonTitle:NSLocalizedString(@"Ok",@"Button: Ok") otherButtonTitles:nil];
[alert show];
[alert release];
}
int main(int argc, char *argv[]) {
//For crash report..
NSSetUncaughtExceptionHandler(&exceptionHandler);
//Normal code...
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
Toutefois, la chose n'a pas pris beaucoup d'erreurs, comme un mauvais dégagement, un MAUVAIS ACCÈS, etc, et l'Application de disparaître. J'ai 2 questions où n'est pas clair pourquoi les parages et les utilisateurs finaux n'ont pas la moindre idée de quoi dire.
(Pour, par exemple, deux fois le même var est pas l'attraper)
Alors, comment j'obtiens TOUS ce fichus erreurs, de sorte que l'utilisateur final simple de m'envoyer un rapport d'erreur?
Êtes-vous réellement en mesure d'obtenir que UIAlertView à montrer? J'en suis incapable. Tous les conseils?
OriginalL'auteur mamcx | 2009-07-14
Vous devez vous connecter pour publier un commentaire.
EXC_BAD_ACCESS
ne génère pas une exception, il génère un signal (SIGSEGV). Pour l'attraper, vous avez besoin d'un gestionnaire de signal. Christopher Atlan a écrit un belle explication de la façon de traiter les deux types de collisions. Assurez-vous de lire les deux partie 1 et partie 2.OriginalL'auteur Rob Napier
si quelqu'un est toujours aux prises avec ce problème et ne peut pas s'en sortir, même avec un SIGSEGV voir mon post ... EXC_BAD_ACCESS de manutention automatique
OriginalL'auteur animal_chin