![]() |
Aktuelle Prozedur beenden nur wie?
Ich habe bei Delphi ein kleines Problem um die Übersich meines Codes zu verwalten. Und zwar überpfrüfe ich anfangs ob bestimmte Vorraussetzunhen erfüllt wurden falls nicht wird in ein Label eine Fehlermeldung eingetragen.
Nur habe ich dann das Problem, dass die Prozedur dann trotzdem weiter ausgeführt wird oder ich muss alles in einen riesigen else Block schachteln was ich eher suboptimal finde... gibt es nicht wie in PHP oder C sowas einfaches wie exit oder return? Oder gibt es nicht schon irgendwas um halt ein Fehlerfenster anzuzeigen und das Programm abzubrechen (Am besten wäre ja diese Standard Windows Fehler Box mit dem shönen Ton und dem Ausrufezeichen)? |
Re: Aktuelle Prozedur beenden nur wie?
Moin
Zitat:
Zitat:
![]() Nachtrag: Herzlich willkommen! |
Re: Aktuelle Prozedur beenden nur wie?
du kannst mit "raise" eine exception thrown dann wird die prozedur abgebrochen.
du musst es dann mit try except abfangen und in except schreibst du dann rein was im label ausgegeben werdn soll. |
Re: Aktuelle Prozedur beenden nur wie?
Um nur eine Prozedure/Funktion abzubrechen, ist das Exit wohl mit am Besten geeignet.
Allerdings nutze ich selber abundzu mal 'ne exception, um mehrere (recursive) Funktionen/Prozeduren zu beenden ... wenn ich mal nicht unbedingt Lust hab, oder es einfasch zu aufwändig wäre dieses auf andere Wege zu lösen :roll: |
Re: Aktuelle Prozedur beenden nur wie?
Exceptions sind, wie deren Name schon sagt, eigentlich kein Instrument für die Programmflusskontrolle, sondern für Ausnahmenzustände gedacht (manchmal auch als Fehler bezeichnet). Zudem verbraucht eine ausgelöste Exception einiges an CPU Zeit, wohingegen ein simples Exit nicht wirklich viel Zeit beansprucht, da es nur den Stack aufräumt und dann ein "ret" durchführt.
|
Re: Aktuelle Prozedur beenden nur wie?
Naja, ich habe mal gelernt, dass Exceptions das Mittel zur Flusskontrolle in OOP sind. Aber das ist Lehrermeinung/wissen.
|
Re: Aktuelle Prozedur beenden nur wie?
@muetze ist es auch.
cpu zeit kannst du reden wenn du in C programmierst. mit OOP ist das sowieso wie es ist.. |
Re: Aktuelle Prozedur beenden nur wie?
Zitat:
|
Re: Aktuelle Prozedur beenden nur wie?
ja
|
Re: Aktuelle Prozedur beenden nur wie?
Nur nochmal zu den exceptions, aktuell nutze ich die eh nur zum Beenden der laufenden Prooceduren, wenn ein Fehler aufgetreten und fange die ganz am Anfang per Try-Except wieder auf ... aber wie gesagt, oftmals verwende aucgh ich sowas wie Exit, aber aktuell war mir der Aufwand einfach zu hoch und warum keine Exception, wenn es sich eh um einen Fehler handelt :roll:
Und zu dem OOP, ein bissl Optimierung kann bestimmt nicht schaden, auch wenn ich's nich so wie Luckie übertreibe und alles nonVCL mache ._. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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