Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Вниз

try .. finally .. end. Помогите разобраться   Найти похожие ветки 

 
user1991   (2009-10-14 21:39) [0]

допустим пишу такой код:

procedure test;
var
  buff: PChar;
begin
  getMem(buff, 1024)
  try
     ....
  finally
     freeMem(buff);
  end;
end;

вот в данном случаи если в блоке вылетит исключение, освобождение же памяти не произойдет?

вот это правильный будет код? :

procedure test;
var
  buff: PChar;

  procedure exit_;
  begin
     freeMem(buff);
  end;
begin
  getMem(buff, 1024)
  try
     ....
     exit_;
  except
     exit_;
  end;
end;

но что-то громоздко... неужели нет что-то совмещающее и финал и исключение?


 
Игорь Шевченко ©   (2009-10-14 21:41) [1]


> вот в данном случаи если в блоке вылетит исключение, освобождение
> же памяти не произойдет?


произойдет


 
user1991   (2009-10-14 21:46) [2]

хм... спасибо большое за ответ!

я просто пошагово когода проходил, то при возникновении исключения в блок finally управление не попадало, после чего стал писать такой громоздкий код, да решил все-таки поинтересоваться у знающих людей...


 
Игорь Шевченко ©   (2009-10-14 21:48) [3]


> то при возникновении исключения в блок finally управление
> не попадало


а ты поставь туда breakpoint



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.004 c
15-1254147415
картман
2009-09-28 18:16
2009.11.29
Усилитель для наушников


2-1255518519
Программер
2009-10-14 15:08
2009.11.29
Перекрывание компонентов


3-1230463282
tipman
2008-12-28 14:21
2009.11.29
update в MSO Access через Jet4.0 более 127 полей


15-1254429012
Юрий
2009-10-02 00:30
2009.11.29
С днем рождения ! 2 октября 2009 пятница


1-1225824956
vik2008
2008-11-04 21:55
2009.11.29
Кодировка в RX Lib





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский