Рассмотрите следующий код:
@try {
if (something.notvalid)
{
return;
}
// do something else
} @catch (NSException *ex) {
// handle exception
} @finally {
NSLog(@"finally!");
}
Если something
не допустимо, и я возвращаюсь из попытки, выполняет в коде @finally
выполниться или нет? Я полагаю, что это должно, но другие, которых я говорил, чтобы не сделать, думают так, и я не могу протестировать это в данный момент.
@finally код всегда выполняется в соответствии с здесь и здесь.
Блок @finally содержит код, который должен быть выполнен независимо от того, будет ли исключение или нет.
Да. Как ни странно, это так. Я не уверен почему, но я только что создал тест и попробовал несколько конфигураций, и каждый раз это происходило.
Вот конфигурации: