trotz FileExists, solltest du eine Fehlerbehandlhng machen, denn es könnten auch noch Zugriffsfehler auftreten.
z.B. Datei ist gesperrt (fehlende Zugriffsrechte oder sie ist bereits ohne passende Sharingrechte geöfnet)
Try-Except wirkt auch innerhalb der
IDE bzw. des Debuggers,
nur daß der Debugger die Exceptions dennoch anzeigt, damit der Programmierer mitbekommt, wenn etwas nicht stimmt.
> diese Debugger-Exceptions lassen sich in den Projektoptionen auch abschalten
Dann gehört sl.Free nicht in das Try-Except hinein, denn was passiert, wenn bei LoadFromFile die bearbeitung abgebrochen und an den Except-Bock abgegeben wird?
Genau, sl.Free wird nicht aufgerufen und das Objekt auch nicht freigegeben!
Eigentlich gehört hier noch ein Try-Finally drumrum
Delphi-Quellcode:
sl := TStringList.Create;
try
// ... mach etwas ...
finally
sl.Free;
end;
also
Delphi-Quellcode:
sl := TStringList.Create;
try
try
s1.loadfromfile('C:/Programme/Delphi/test.txt');
except
showmessage('Fehler beim Lesen!');
end;
finally
sl.Free;
end;
Aber da Try-Except die Bearbeitung fortestzt und zwischen .Create und .Free nur das Try Except(plus dessen Inhalt) liegt, könnte man Try-Finally auch mal ausnahmsweise weglassen
Delphi-Quellcode:
sl := TStringList.Create;
try
s1.loadfromfile('C:/Programme/Delphi/test.txt')
except
showmessage('Die Datei ist nicht vorhanden!')
end;
s1.free;
Ein Therapeut entspricht 1024 Gigapeut.