Ключевое слово Finally используется, чтобы отметить начало конечного блока инструкций в инструкции Try. Они будут выполнены независимо от того, что случится в инструкциях Try.
Однако, предложение Finally фактически не обрабатывает никаких исключений - программа закончится, если никакое предложение Except не найдено (см. примечания ниже).
Try-Finally обычно используется подпрограммой, чтобы позволить освободить ресурсы.
Примечания
Try
...
Except
...
Finally
...
End;
где исключения заманены в ловушку и обработаны, но в любом случае, набор инструкций очистки будут выполнены. Это может быть достигнуто с помощью вложенных инструкций Try:
Try
Try
...
Except
...
End;
Finally
...
End;
Похожие команды
Except Начинает предложение заманивающее в ловушку ошибки Try инструкции
On Определяет обработку особых ситуаций в предложении TryExcept
Пример кода : Деление на ноль с предложением finally
var
number, zero : Integer;
begin // Попытка деленя целого числа на нуль - чтобы поднять исключение
number := -1;
Try
zero := 0;
number := 1 div zero;
ShowMessage('number / zero = '+IntToStr(number)); Finally
if number = -1 then
begin
ShowMessage('Числу не было присвоено значение - использование значения по умолчанию');
number := 0;
end;
end;
end;
Числу не было присвоено значение - использование значения по умолчанию
Затем, программа заканчивается с сообщением об ошибке EDivByZero -, предложение finally не выловило ошибку.