![]() |
Re: Goto in andere Procedure...oder gibts ne Alternative?
Zitat:
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:
Zitat:
Delphi-Quellcode:
... und im Falle eines Fehlers die Exception einfach durchschlagen lassen (oder halt diesen Block mit try..except umranden und eine "schöne" Fehlermeldung ausgeben).
Init;
WriteLn('Init OK'); FileInit; WriteLn('FileInit OK'); Analyse; WriteLn('Analyse OK'); FileUnInit; WriteLn('FileUnInit OK'); UnInit; WriteLn('UnInit OK'); |
Re: Goto in andere Procedure...oder gibts ne Alternative?
Was hindert dich daran, eine boolsche Variable zu erstellen, und die abzufragen?
Delphi-Quellcode:
So ungefähr hätte ich das jetzt prinzipiell gemacht.
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. Ist imho die Variante, wo man am wenigsten für nachdenken muss :mrgreen: Auch, wenn die Exception-Möglichkeit schick ist, und weniger Aufwand bedeutet :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 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