AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Goto in andere Procedure...oder gibts ne Alternative?
Thema durchsuchen
Ansicht
Themen-Optionen

Goto in andere Procedure...oder gibts ne Alternative?

Ein Thema von glkgereon · begonnen am 29. Aug 2005 · letzter Beitrag vom 29. Aug 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: Goto in andere Procedure...oder gibts ne Alternative?

  Alt 29. Aug 2005, 15:05
Zitat von marabu:
Hoffentlich schaut wenigstens Flocke mal in die Online-Hilfe - Assert (Prozedur) ...
Sicher tu ich das 8)
1. was löst eine fehlgeschlagene Assertion aus? Eine Exception vom Typ EAssertionFailed!
2. Assertions taugen nur zum Debuggen, da man mit einem Compilerschalter ganz einfach alle komplett deaktivieren kann.

Zitat von glkgereon:
Meine Onlinehilfe (D2k5) kennt Assert nicht.
Meine auch nicht!

Zitat von tommie-lie:
die sauberste Möglichkeit, auf so einen Fehler zu reagieren.
Meiner Meinung nach nicht. Die "sauberste" Möglichkeit wäre (in meinen Augen), aus den booleschen Funktionen Prozeduren zu machen, die im Falle eines Fehlers direkt eine Exception auslösen. Der Rumpf sähe dann so aus:

Delphi-Quellcode:
Init;
WriteLn('Init OK');
FileInit;
WriteLn('FileInit OK');
Analyse;
WriteLn('Analyse OK');
FileUnInit;
WriteLn('FileUnInit OK');
UnInit;
WriteLn('UnInit OK');
... und im Falle eines Fehlers die Exception einfach durchschlagen lassen (oder halt diesen Block mit try..except umranden und eine "schöne" Fehlermeldung ausgeben).
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#12

Re: Goto in andere Procedure...oder gibts ne Alternative?

  Alt 29. Aug 2005, 15:08
Was hindert dich daran, eine boolsche Variable zu erstellen, und die abzufragen?

Delphi-Quellcode:
label Ende; //SprungMarke

var bEnde: boolean = false;

procedure Output(Error: Boolean; Value: String);
begin
  if Error then
    begin
    WriteLn(Value+'Fehler');
    bEnde := true;
    end
  else WriteLn(Value+'OK');
end;

begin

OutPut(Init,'Init...');
if not (bEnde) then OutPut(FileInit,'FileInit...') else goto Ende; //oder exit;
if not (bEnde) then OutPut(Analyse,'Analyse...') else goto Ende;
if not (bEnde) then OutPut(FileUnInit,'FileUnInit...') else goto Ende;
if not (bEnde) then OutPut(UnInit,'UnInit...') else goto Ende;

Ende: ;
end.
So ungefähr hätte ich das jetzt prinzipiell gemacht.

Ist imho die Variante, wo man am wenigsten für nachdenken muss

Auch, wenn die Exception-Möglichkeit schick ist, und weniger Aufwand bedeutet
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:52 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