Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: aus einer Liste Einträge in eine andere Liste verschieben
12. Sep 2014, 08:30
Damit es auch hier steht
Delphi-Quellcode:
procedure fooOne;
var
bar : TBar;
begin
bar := TBar.Create;
try
// work on bar
finally
bar.Free;
end;
end;
// aber nicht so
procedure fooNleaks;
var
bar1 : TBar1;
bar2 : TBar2;
begin
bar1 := TBar1.Create;
// wenn jetzt eine Exception ausgelöst wird, dann wird bar1 niemals entfernt!
bar2 := TBar2.Create;
try
// work on bars
finally
bar1.Free;
bar2.Free;
end;
end;
// darum so
procedure fooNsafe;
var
bar1 : TBar1;
bar2 : TBar2;
begin
// lokale Variablen sind NICHT initialisiert, darum auf NIL setzen!
bar1 := nil;
bar2 := nil;
try
bar1 := TBar1.Create;
// wenn jetzt eine Exception ausgelöst wird, dann wird bar1 korrekt entfernt!
bar2 := TBar2.Create;
// work on bars
finally
bar1.Free;
bar2.Free;
end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
|