Google Coding Standard pour l'objectif C dit que nous devrions not throw exceptions, quelles sont les alternatives à @throw
alors?Quelles sont les alternatives à jeter des exceptions dans l'objectif c
Répondre
Une possibilité est de fournir des informations d'exception prolongée par NSError
:
- (BOOL) doSomethingWhichCanFailWithError: (NSError**)aLocation {
...
if(didFail) {
if(aLocation) {
*aLocation = [NSError errorWithDomain: kMyErrorDomain code: myErrorCode userInfo: nil];
}
}
return !didFail;
}
L'appelant peut vérifier si l'appel a réussi en examinant la valeur du résultat. Si plus d'informations sont requises en cas d'erreur, il peut fournir un emplacement où la méthode peut stocker des informations supplémentaires:
NSError* error = nil;
if(![instance doSomethingWhichCanFailWithError: &error]) {
NSString* domain = [error domain];
if([kMyErrorDomain isEqual: domain]) {
switch([error code]) {
case ...: ...
default: ...
}
}
}
+1 Ceci est le modèle recommandé par Apple. Personnellement, j'aime les exceptions et je les utilise le cas échéant mais vous ne pouvez pas autoriser les exceptions à se propager en dehors de votre propre code car tout appel de votre code peut ne pas supporter les exceptions. – JeremyP
Existe-t-il également un modèle recommandé traitant des erreurs asynchrones? c'est-à-dire des codes d'erreur de réseau etc. qui ne sont pas détectables au préalable? – chakrit
- 1. Quelles sont les alternatives à ClickOnce?
- 2. Quelles sont les alternatives OpenID
- 3. Quelles sont les alternatives à Pervasive DataRush
- 4. Quelles sont les alternatives à DataGridView?
- 5. Quelles sont les alternatives à GeoEXT?
- 6. Quelles sont les alternatives "Pastie"? (installable)
- 7. Quelles sont les alternatives pour CSharpOptParse?
- 8. Quelles sont les alternatives pour l'authentification Java?
- 9. Quelles sont quelques alternatives ALM à TFS?
- 10. Quelles sont les alternatives à AJAX Control Toolkits ValidationCallOutExtender
- 11. Quelles sont les alternatives gratuites à Google Code (projet d'hébergement)?
- 12. Quelles sont les alternatives à l'Open Source Job Scheduler?
- 13. Quelles sont les alternatives dans les projets OS pour C# similaires à Joomla/Mambo/Drupal?
- 14. quelles sont les alternatives à l'utilisation de global.asax?
- 15. Quelles sont les alternatives à PersistentPerl ou SpeedyCGI?
- 16. comment ne pas jeter des exceptions à server.log dans java
- 17. NpgSQLdataReader GetOrdinal jeter des exceptions .. n'importe comment?
- 18. Quelles sont les alternatives à Split une chaîne dans C# qui n'utilisent pas String.Split()
- 19. Est-ce que DDE compte toujours? Quelles sont les alternatives?
- 20. OOoBeans mort? - Quelles sont mes alternatives?
- 21. Quelles sont les alternatives pour PHPLint qui s'exécutent sous Windows?
- 22. Pourquoi Perfmon ne parvient pas à donner de la mémoire disponible et quelles sont les alternatives?
- 23. Comment puis-je gérer toutes les exceptions dans une classe C# où les deux ctor et finalizer jeter des exceptions?
- 24. Quelles sont les alternatives à l'utilisation des applications Tomcat pour Jruby Rack?
- 25. Quelles alternatives à __attribute__ existent sur les noyaux 64 bits?
- 26. Dans IE6, Quelles sont les alternatives à afficher: inline-block, table, table-row. table-cellule?
- 27. Quelles sont les principales spécifications C/C++?
- 28. Quelles sont les exceptions qu'une fonction Python peut déclencher?
- 29. Quelles sont les alternatives à paypal pour les pays non-supportés?
- 30. Quelles sont les alternatives à UML pour représenter graphiquement les modèles logiciels?
Les normes de codage de Google ne disent pas ** nous ** ne devrions pas jeter des exceptions. Ils disent seulement que les personnes qui écrivent du code pour des projets open source Google ne doivent pas utiliser d'exceptions. – JeremyP
vous avez raison, c'est juste que j'essaie de suivre leurs directives dans mes projets aussi. vous ne savez jamais quand vous pourriez mélanger C++ avec cela et cela causera des problèmes pour les objets créés sur la pile. – malik