考虑下面的
Cocoa / Obj-C代码片段:
MyClass *obj; @try { [obj doSomething]; } @catch (NSException * e) { NSLog(@"Exception occurred: %@",[e description]); } @finally { [obj cleanUp]; }
和
MyClass *obj; @try { [obj doSomething]; } @catch (NSException * e) { NSLog(@"Exception occurred: %@",[e description]); } [obj cleanUp];
在什么情况下第一个片段会导致[obj cleanUp]被调用,而第二个不会导致[obj cleanUp]被调用?换句话说,在使用Cocoa异常处理时,在什么情况下@finally是非冗余的?