Hi all,
bei Delphi is mir mit als erstes aufgefallen, dass man except und finally nicht miteinander verwenden kann.
In Java bsw. können folgende Blöcke gebildet werden:
Code:
try
{
...
}
except
{
...
}
finally
{
...
}
Da ich auf Exceptions reagieren möchte (log diese in ne Datei), setze ich finally so gut wie gar nicht ein.
Jetzt hab ich in dem Beispiel allerdings gelesen, dass mein Ansatz eigentlich falsch ist.
Delphi-Quellcode:
TRY
...
sl:=TStringList.create;
// Resource belegen
...
EXCEPT
on E:
Exception do
begin
Loggen
end;
END;
s1.Free
Frag mich nun folgendes:
1. In obigen Beispiel wird doch s1 auch IMMER freigegeben oder hab ich da nen Denkfehler?.
2. Was passiert eigentlich wenn s1 nicht freigegeben wird? Wird nur unnötig Speicher belegt bis das Programm endet?
cu
Terminator