AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aktuelle Prozedur beenden nur wie?

Ein Thema von daniel987 · begonnen am 26. Mär 2006 · letzter Beitrag vom 27. Mär 2006
Antwort Antwort
daniel987

Registriert seit: 26. Mär 2006
1 Beiträge
 
#1

Aktuelle Prozedur beenden nur wie?

  Alt 26. Mär 2006, 20:38
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)?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Aktuelle Prozedur beenden nur wie?

  Alt 26. Mär 2006, 20:45
Moin

Zitat von daniel987:
gibt es nicht wie in PHP oder C sowas einfaches wie exit oder return?
Mit [oh]Exit;[/oh] wird die aktuelle Funktion/Prozedur verlassen.

Zitat von daniel987:
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)?
Da gibt es einige Dialoge (das [oh]Exit;[/oh] nach dessen Aufruf nicht vergessen).


Nachtrag: Herzlich willkommen!
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#3

Re: Aktuelle Prozedur beenden nur wie?

  Alt 26. Mär 2006, 20:47
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Aktuelle Prozedur beenden nur wie?

  Alt 27. Mär 2006, 11:11
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Aktuelle Prozedur beenden nur wie?

  Alt 27. Mär 2006, 12:22
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Aktuelle Prozedur beenden nur wie?

  Alt 27. Mär 2006, 12:47
Naja, ich habe mal gelernt, dass Exceptions das Mittel zur Flusskontrolle in OOP sind. Aber das ist Lehrermeinung/wissen.
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#7

Re: Aktuelle Prozedur beenden nur wie?

  Alt 27. Mär 2006, 13:18
@muetze ist es auch.
cpu zeit kannst du reden wenn du in C programmierst. mit OOP ist das sowieso wie es ist..
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Aktuelle Prozedur beenden nur wie?

  Alt 27. Mär 2006, 13:25
Zitat von simonko:
@muetze ist es auch.
cpu zeit kannst du reden wenn du in C programmierst. mit OOP ist das sowieso wie es ist..
Hä? Kannst du mal bitte erläutern, was du damit meinst? Meisnt du etwas Codeoptimierung wäre überflüssig weil das Konzept von OOP eh alles wieder zu nichte macht?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#9

Re: Aktuelle Prozedur beenden nur wie?

  Alt 27. Mär 2006, 18:01
ja
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Aktuelle Prozedur beenden nur wie?

  Alt 27. Mär 2006, 18:43
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

Und zu dem OOP, ein bissl Optimierung kann bestimmt nicht schaden, auch wenn ich's nich so wie Luckie übertreibe und alles nonVCL mache ._.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz