Je crée une application basée sur l'iPhone et j'ai des problèmes d'interception. Jusqu'à présent, je ne l'ai jamais eu de problème avec les prises d'essai, mais ici ... bien: DProblème d'interception d'exceptions
Voici le code qui ne se coince pas exception:
- (void)updateView:(NSTimer*)t {
NSMutableDictionary *requestResult = [[[NSMutableDictionary alloc] init] autorelease];
@try {
requestResult = [self.eqParam getParameters];
}
@catch (MMConnectionFailed * e) {
[self performSelectorOnMainThread:@selector(noConnection) withObject:@"Could not reach server." waitUntilDone:YES];
}
}
Les méthodes latérales inférieures jettent bien des exceptions en mode débogage en cas d'exception mais lorsque cette méthode est concernée, rien n'est intercepté.
Une idée?
MISE À JOUR:
Enfin, j'ai découvert où était le problème, mais je ne sais toujours pas pourquoi l'exception n'a pas été jeté sur le levier inférieur. J'ai changé la fin de ma méthode getParameters
. Ici:
- (NSMutableDictionary *)getParameters {
@try {
// be careful with NSMutableDictionary. Has to be used with setters to be correctly affected
lastResponse = [MMSoapMethods getEquipmentParametersWithUserString:user equipmentId:equipmentId];
}
@catch (MMConnectionFailed * e) {
@throw e;
}
@finally {
if (self.lastResponse) {
return lastResponse;
}
else
return nil;
}
}
Je viens enlevé les @finally
balises qui l'entourent et l'exception a été levée. Étrange, n'est-ce pas?
Vous pouvez également placer l'étiquette Objective-C dans la question. Il est probable que vous attrapiez le mauvais type d'exception ou qu'aucune exception ne soit générée par le code dans la section try. – Nubsis