次の 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]
最初のスニペットが呼び出され、2 番目のスニペットが呼び出されないのはどのような状況[obj cleanUp]
ですか? 言い換えれば、@finally
Cocoa 例外処理を使用する場合、どのような状況で非冗長になるのでしょうか?