Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matan!
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Процедуры выхода внутри блока try..finally

Запись от Matan! размещена 15.04.2019 в 09:32

Сейчас встал вопрос в одном из разделов по поводу процедур выхода внутри блока try..finally. Проэкспериментировал на простейшем примере:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
procedure TryExit;
var
  i: Integer;
  ar: array of Integer;
begin
  SetLength(ar, 10);
  Randomize;
  try
    for i := 0 to Length(ar) - 1 do
    begin
      ar[i] := Random(10);
      if i = 3 and 1 then
      begin
        //ShowMessage('Halt!');
        //Halt;                     // вылетит без предупреждений
 
        //ShowMessage('Exit!');
        //Exit;                     // выполнится блок finally и выход из процедуры
 
        //ShowMessage('Break!');
        //Break;                    // выполнится блок finally и выход из процедуры
 
        //ShowMessage('Application.Terminate!');
        //Application.Terminate;    // вылетит без предупреждений
 
        ShowMessage('Close!');
        Form1.Close;                // вылетит без предупреждений
      end;
    end;
  finally
    ShowMessage(IntToStr(i) + ' and finally.');
  end;
end;
Размещено в Без категории
Просмотров 140 Комментарии 2
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для defer
    Так и какой результат?
    Запись от defer размещена 15.04.2019 в 11:03 defer вне форума
  2. Старый комментарий
    Аватар для Matan!
    Ну, в комментах я написал, что получается. Если кто захочет попробовать у себя - достаточно будет откомментировать интересующие две строки.
    Запись от Matan! размещена 18.04.2019 в 15:04 Matan! вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru