Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Codeblock mit Exception vorzeitig abbrechen
Frankieboy - So 01.11.09 12:59
Titel: Codeblock mit Exception vorzeitig abbrechen
Ich habe in menem Programm einen Block von Code, der ausgeführt wird (es werden Dateien gesucht und gefiltert).
Falls in der Mitte klar ist, dass keine oder nur wenige Dateien gefunden wurden, sollte die Ausführung des Rests vorzeitig abgebrochen werden. Ich habe mir überlegt, dass dies am besten mit
try except end funktionieren würde (hier wird ja der Rest des Codes nicht mehr ausgeführt, sobald eine Exception auftritt, oder?)...
Also so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| begin try [Block 1 - Dateien aus dem Verzechnis auslesen] if AnzahlDateien < 2 then Excpetion.Create('No duplicate files found'); [Block 2 - Dateien filtern] except end; end; |
Leider wird weder der Exceptiondialog angezeigt, wenn AnzahlDateien kleiner 2 ist, noch wird die Ausführung des Codes abgebrochen...
Was kann ich machen? :? Oder gibt es noch eine andere Möglichkeit?
Danke,
Frank
Narses - So 01.11.09 13:40
Moin!
Also bei mir funktioniert das einwandfrei, deshalb stellt sich die Frage, was da noch so im Code passiert. :nixweiss:
Aaaber: (
alzaimars "Exceptions sind keine Krankheit"-Weisheit im Hinterkopf habend) Warum du hier überhaupt mit einer Exception hantierst, ist mir unklar. Das ist doch ein ganz "normaler" Fall, dass nicht genug Dateien vorhanden sind, sowas muss man doch nicht als "Ausnahme" behandeln - mit ensprechendem Overhead (den man zugegeben nicht sieht). Hier fände ich ein if-Konstrukt absolut angemessen. Vor mir aus ein Exit, wenn´s denn unbedingt sein muss, aber keine Exception. :idea:
cu
Narses
dummzeuch - So 01.11.09 22:35
Narses hat folgendes geschrieben : |
Warum du hier überhaupt mit einer Exception hantierst, ist mir unklar.
|
Genau! Da gehoert ein Goto hin!
SCNR
twm
Delete - So 01.11.09 22:55
Man kann auch mit Exceptions arbeiten. Aber dann würde ich da eine Exception werfen und diese dann im aufrufenden Code abfangen.
Narses - So 01.11.09 23:25
Moin!
Luckie hat folgendes geschrieben : |
Man kann auch mit Exceptions arbeiten. Aber dann würde ich da eine Exception werfen und diese dann im aufrufenden Code abfangen. |
Mal wieder glasklar erkannt ;) ich hatte natürlich das raise beim Test implizit ergänzt, ist mir gar nicht aufgefallen... :oops:
Frankieboy hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| begin try [Block 1 - Dateien aus dem Verzechnis auslesen] if AnzahlDateien < 2 then raise Exception.Create('No duplicate files found'); [Block 2 - Dateien filtern] except end; end; | |
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!