Оператор try ... finally

Оператор 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.