Thema: Delphi try ... except

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.287 Beiträge
 
Delphi 12 Athens
 
#5

Re: try ... except

  Alt 30. Aug 2009, 22:45
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.
  Mit Zitat antworten Zitat