【发布时间】:2012-01-11 23:37:41
【问题描述】:
当您在 ObjC @catch 块中捕获异常时,该异常对象的生命周期是什么?我知道我可以在块内安全地使用它,但是如果我想在块之后再次使用它怎么办,像这样?
NSException * exception = nil;
@try {
// do something risky
} @catch(NSException * e) {
exception = e;
}
if (exception) {
NSLog(@"Caught exception: %@", exception);
}
我可以安全地将引用存储到另一个本地吗?为了安全起见,我应该retain, autoreleaseing 吗?我可以保留它并无限期地持有它吗?
(如果我分配给本地,或者稍后保留并使用,它似乎工作正常,但是文档并没有真正讨论这个对象在所有权方面“来自”哪里,或者它是否特殊,所以我正在寻找更多的清晰度。)
【问题讨论】:
标签: objective-c try-catch nsexception