Как предотвратить утечки памяти при возникновении ошибок?

Материал из DRKB

Как предотвратить утечки памяти при возникновении ошибок?[править | править код]

Используйте конструкцию

try
  { здесь вы пишите код в котором может произойти ошибка }
finally
  { здесь вы пишите код который выполнится в любом случае - хоть произойдёт ошибка, хоть нет }
end

Например, это часто применяется во избежание утечек при динамическом распределении памяти:

var t: TStringList;
...
t := TStringList.Create(); // распределили память под объект t
try
  { здесь работаем с переменной t }
finally
  t.free(); // память выделенная под объект t всегда будет освобождена 
end


Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Source: http://forum.vingrad.ru
ID: 00025