Оператор try ... finally имеет вид:
tryоператоры
finally
операторы
end;
Операторы в блоке finally
выполняются безотносительно к тому, возникло или нет исключение
в блоке try. При этом само исключение
не обрабатывается.
Блок finally
используется для возвращения ранее выделенных ресурсов.
Пример 1. Закрытие открытого файла.
reset(f);
try
...
finally
close(f);
end;
Файл будет закрыт независимо от того, произошло ли ислючение
в блоке try.
Пример 2. Возвращение выделенной динамической памяти.
New(p);
try
...
finally
Dispose(p);
end;
Динамическая память, контролируемая указателем p,
будет возвращена независимо от того, произошло ли ислючение в блоке
try.