Когда вы ловите исключение в блоке ObjC @catch
, каков жизненный цикл этого объекта исключения? Я знаю, что могу безопасно использовать его внутри блока, но что, если я захочу использовать его снова после блока, как это?
NSException * exception = nil;
@try {
// do something risky
} @catch(NSException * e) {
exception = e;
}
if (exception) {
NSLog(@"Caught exception: %@", exception);
}
Могу ли я безопасно спрятать ссылку в другой локальный? Должен ли я сделать это для безопасности? Могу ли я сохранить его и удерживать до бесконечности?
(Похоже, что все работает нормально, если я назначу локальному, или сохраню и использую позже, но в документах не обсуждается, откуда этот объект "происходит" с точки зрения владения или если он особенный, поэтому искал больше ясности.)