![]() |
Re: Möglichkeit: Try ... Except ... Finally ?
Dann wäre aber der finally-Abschnitt der falsche Ort gewesen
|
Re: Möglichkeit: Try ... Except ... Finally ?
Wofür?
|
Re: Möglichkeit: Try ... Except ... Finally ?
Es musste nur igrendwo im Zusammenhang mit dem Try das Ini.Free gesetzt werden. Funktioniert am ende von try, genauso wie im finally block. Blos wenn vorher im try block irgendwas nicht funktioniert, arbeitet er das ini.free nicht mehr ab. So wie es Bernau schon kommentiert hat. Deswegen auch besser im finally block aufgehoben.
|
Re: Möglichkeit: Try ... Except ... Finally ?
Zitat:
|
Re: Möglichkeit: Try ... Except ... Finally ?
Hm, über die Diskussion try...except...finally stolpert man ja hier beim Mitlesen öfter mal. Meistens wundere ich mich, was eigentlich gegen ein einfaches (um es mal auf das urpsrüngliche Beispiel zu beziehen)...
Delphi-Quellcode:
...spricht. Hier würde man kein finally benötigen, weil das puh schon allein durch den try-except-Block auch bei einem Fehler immer ausgeführt wird.
try
bla; blubb; except bam; end; puh; Oder ist an diesem Ansatz irgendwas falsch/unschön? Bis denn Bommel edit: 'n paar begin...end entfern... |
Re: Möglichkeit: Try ... Except ... Finally ?
So hatte ich es urprünglich geschrieben. Das Ini.Free quasie nach der Abhandlung Try-Except auszuführen. Nur musste ich dann mit Erschüttern festellen, das alle Folgenden Funktionen/Befehle nichts mehr gemacht haben. So z.b. (findet ja alles in einer OnFormCreate statt) sollte ein Ordner erstellt werden, was dann allerdings nicht mehr funktionierte. nach ein paar Untersuchungen stellte ich dann fest, das das Ini.Free das Problem war. Das muss wie schont erwähnt mit in das Try bzw sicherer ins finally.
Jetzt funktioniert ja alles wieder prächtig :) |
Re: Möglichkeit: Try ... Except ... Finally ?
Hallo,
Zitat:
Gruß xaromz |
Re: Möglichkeit: Try ... Except ... Finally ?
Zitat:
Das folgende Beispiel ist richtig. Ein umschliessendes finally ist eigendlich nicht nötig. Ausser es tritt im Except noch eine exception auf.
Delphi-Quellcode:
try
bla; blubb; except bam; //Das wir ausgeführt, wenn ein Fehler auftritt. end; puh; // Das wird auf jedenfall abgearbeitet. Egal was oben passiert. |
Re: Möglichkeit: Try ... Except ... Finally ?
Hm, merkwürdig. Ich setze die Konstruktion, wie ich sie beschrieben habe, an einigen Stellen in meinen Programmen ein und eigentlich klappt das immer wunderbar:
Delphi-Quellcode:
Alle Zeilen nach dem try-except-Block werden bei mir immer ausgeführt - sonst hätte ich hier in manchen Programmen richtige Probleme. try-finally nutze ich eigentlich so gut wie gar nicht, weil ich immer dachte, der würde dann eben nur noch den finally-Teil ausführen und dann nix mehr. Also:
try
irgendwas; except fehlermedlung_oder_so; end; aufraeumen; weitere_befehle;
Delphi-Quellcode:
Im zweiten Beispiel würde zwar auch aufgeräumt, aber keine weiteren Befehle mehr ausgeführt. Dachte ich.
try
irgendwas; finally aufraeumen; end; weitere_befehle; Jetzt bin ich verwirrt. Aber glücklich. Läuft ja bei uns beiden. ;) (Bin aber dennoch für Aufklärung dankbar) @xaromz: Naja, okay, normalerweise gebe ich da nur Fehlermeldungen aus oder setze Variablen auf default-Werte, da sollte dann nix mehr passieren. Dass man da sonst auch wieder Fehlerbehandlungen machen muss, ist klar, aber die Frage bliebe ja die gleiche: auch das könnte ich ja prinzipiell durch mehrere verschachtelte try-except-Blöcke machen... Bis denn Bommel |
Re: Möglichkeit: Try ... Except ... Finally ?
Delphi-Quellcode:
Da kommt kein "Huhu".
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringlist; begin try sl.Add('Bumm'); except ShowMessage('Oha'); exit; end; ShowMessage('Huhu'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz