Я смотрю какой-то код в нашем приложении и натыкаюсь на что-то немного странное из того, что я обычно делаю. С обработкой исключений и очисткой мы (как и многие другие программисты там, я уверен) используют блок Try/finally, встроенный в блок Try/Except. Теперь я привык к Try/Except внутри Try/finally следующим образом:
Try
Try
CouldCauseError(X);
Except
HandleError;
end;
Finally
FreeAndNil(x);
end;
но этот другой блок кода обращается так:
Try
Try
CouldCauseError(X);
Finally
FreeAndNil(x);
end;
Except
HandleError;
end;
Оглядываясь по Сети, я вижу, как люди делают это в обоих направлениях, без объяснения причин. Мой вопрос в том, имеет ли значение, который получает внешний блок и который получает внутренний блок? Или будут обрабатываться исключения и, наконец, разделы, независимо от того, каким образом он структурирован? Спасибо.