Delphi справочник - Форум программистов - Навигация  
 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      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  


Основы Delphi
Finally
Ключевое слово
Начинает безоговорочный раздел кода инструкции Try unit
  
Try
   Statement
  {Statement...}
 Finally
   Statement
  {Statement...}
End;
Описание
Ключевое слово 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 не выловило ошибку.
 



© Форум Delphi   |  Блог программистов   |  Создание и продвижение сайтов - "Веб сателлит"  |  Ссылки   |  Английская версия