J'utilise le gestionnaire d'objets de Restkit pour gérer un bon mandrin de mes appels d'API distants.Gestion de NSAsserts dans Restkit throws
Il lance NSAssert pour un large éventail d'erreurs. Par exemple, si le serveur renvoie une page d'erreur par opposition à json bien formé, il déclenchera un NSAssert, même s'il n'y a rien de mal avec le code.
Il y a quelques choses que je suis confus au sujet (dont la plupart ont à voir avec la gestion générale des exceptions et nsasserts)
Comment devrions-nous gérer ces erreurs NSAsserts? Par exemple, nous voudrions réessayer à quelques reprises, puis montrer un message «quelque chose s'est mal passé». (par opposition à l'écrasement de l'application)
J'ai essayé d'utiliser un bloc catch-try pour intercepter les erreurs (code ci-dessous), mais les erreurs ne sont pas détectées. Donc, mon application ne cesse d'échouer. De plus, je ne suis pas à l'aise avec l'utilisation de try-catch en mode release de toute façon.
Pour ma compréhension, pourquoi NSAsserts d'utilisation Restkit, par opposition à une autre défaillance
Merci beaucoup pour votre aide - beaucoup apprécié!
// code to catch NSAssert that sharedManager throws
@try{
[sharedManager loadObjectsAtResourcePath:self.resourcePath delegate:self];
}
@catch (NSException *ex) {
NSLog(@"exception caught");
}
IME, les gens (y compris moi-même) utilisent les affirmations parce que c'est facile, pas parce que c'est une bonne gestion des erreurs. Le code de production ne doit pas avoir d'assertions qui échouent parce qu'un serveur a renvoyé des ordures; code de la bibliothèque * vraiment * ne devrait pas. Vous pouvez essayer '#define NS_BLOCK_ASSERTIONS 1' et voir ce qui se passe ... –