Tenir compte des extraits suivants du code Cocoa/Obj-C:Dans quelles circonstances @finally n'est-il pas redondant dans la procédure d'exception try/catch/finally de Cocoa?
MyClass *obj;
@try {
[obj doSomething];
}
@catch (NSException * e) {
NSLog(@"Exception occurred: %@", [e description]);
}
@finally {
[obj cleanUp];
}
et
MyClass *obj;
@try {
[obj doSomething];
}
@catch (NSException * e) {
NSLog(@"Exception occurred: %@", [e description]);
}
[obj cleanUp];
Dans quelles circonstances le premier résultat de bout en [obj cleanUp]
appelé, alors que le second ne sera pas résultat au [obj cleanUp]
étant appelé? En d'autres termes, dans quelles circonstances @finally
n'est-il pas redondant lors de l'utilisation de Cocoa Exception Handling?
FYI, voici le document d'Apple détaillant comment gérer la mémoire avec @ try/@ catch/@ throw/@ enfin la gestion des exceptions: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ Exceptions/Tâches/HandlingExceptions.html # // apple_ref/doc/uid/20000059-SW7 –