Справочник функций и процедур Delphi: Finally

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

Finally
Ключевое слово
Начинает безоговорочный раздел кода инструкции Try unit
  
Try
   Statement
  {Statement...}
 Finally
   Statement
  {Statement...}
End;

Google  
 
Описание
Ключевое слово Finally используется, чтобы отметить начало конечного блока инструкций в инструкции Try. Они будут выполнены независимо от того, что случится в инструкциях Try.

Однако, предложение Finally фактически не обрабатывает никаких исключений - программа закончится, если никакое предложение Except не найдено (см. примечания ниже).

Try-Finally обычно используется подпрограммой, чтобы позволить освободить ресурсы.
Примечания
Try
  ...
Except
  ...
Finally
  ...
End;


где исключения заманены в ловушку и обработаны, но в любом случае, набор инструкций очистки будут выполнены. Это может быть достигнуто с помощью вложенных инструкций Try:

Try
  Try
    ...
  Except
    ...
  End;
Finally
  ...
End;
Похожие команды
Except  Начинает предложение заманивающее в ловушку ошибки Try инструкции

On  Определяет обработку особых ситуаций в предложении Try Except

Raise  Поднимает исключение

Try  Начинает код, который перехватывает ошибки

 
Пример кода : Деление на ноль с предложением 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 не выловило ошибку.
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook