Java имеет блок finalize, который позволяет выполнять некоторые операторы после того, как остался блок (выполняется даже при возникновении исключения). Пример:Лучшая практика для реализации в Ada (2005 или 2012), эквивалентная блоку завершения java
try {
...
} catch (Exception e) {
...
} finally {
... // any code here
}
Ада имеет контролируемые объекты, что позволяет реализовать операциюFinalize , но нет финализации блока эквивалентны, как и в Java. Это полезно для протоколирования, закрытия файлов, транзакций и т. Д. (Без необходимости создания определенного тега для каждого возможного блока).
- Как бы вы реализовали такой блок завершения в Ada 2005 (сохраняя при этом код для чтения)?
- Есть ли планы в Ada 2012, позволяющие легко выполнять любой код для окончательной доработки?
Метод 'Finalize' управляемого объекта больше похож на деструктор. он не имеет никакого сходства с блоком финализации. –
Да, но вы можете «имитировать» каким-то образом такое поведение, но оно тяжелое. – ciceron
Это блок 'finally', который не имеет никакого отношения к вызову методов' finalize'. – Gabe