![]() |
Prozedur vorzeitig beenden
Mit welchem Befehl kann ich eine Prozedur vorzeitig beenden (bei VB6 ist es 'exit sub')?
|
Re: Prozedur vorzeitig beenden
hier auch fast ^^
Delphi-Quellcode:
exit;
|
Re: Prozedur vorzeitig beenden
Delphi-Quellcode:
:mrgreen:
Exit;
|
Re: Prozedur vorzeitig beenden
Danke! Hätte nicht gedacht, dass der Befehl so einfach ist! :mrgreen:
|
Re: Prozedur vorzeitig beenden
Hallo.
Ein Exit würde ich persönlich nicht verwenden. Ein Exit ist unüberschaubar und für andere Programmierer an Deinem Code schwer zu lesen/verstehen. Ich habe es mir angewöhnt eine Boolean-Variable einzuführen. Das macht dann auch das ganze Debuggen einfacher und ist sauber strukturiert. Gruss Samson |
Re: Prozedur vorzeitig beenden
Würde ich so pauschal nicht sagen. Selbst in Borland Sourcen findet man exits.
|
Re: Prozedur vorzeitig beenden
Zitat:
Ich denke aber auch, dass ein Break oder Goto in seltenen Fällen die Lesbarkeit des Codes verbessern kann (ganz zu schweigen von der Performance). @mirko2000: Beide Statements eignen sich ebenfalls zum Verlassen einer Kontrollstruktur. Interessant ist dann vielleicht noch die "stille Exception" EAbort, ausgelöst durch die Prozedur SysUtils.Abort |
Re: Prozedur vorzeitig beenden
Zitat:
|
Re: Prozedur vorzeitig beenden
Ich finde, durch die Verwendung von Exits kann der Code auch übersichtlicher werden.
Z. B. in so einem Fall:
Delphi-Quellcode:
Das finde ich übersichtlicher als:
if call_function1 = ERROR_TYPE then
begin ShowErrorMessage; Exit; end; if call_function2 = ERROR_TYPE then begin ShowErrorMessage; Exit; end; if call_function3 = ERROR_TYPE then begin ShowErrorMessage; Exit; end;
Delphi-Quellcode:
oder gar:
var
bError: Boolean; begin bError := False; if call_function1 = ERROR_TYPE then begin bError := True; ShowErrorMessage; end; if not bError then if call_function2 = ERROR_TYPE then begin bError := True; ShowErrorMessage; end; if not bError then if call_function3 = ERROR_TYPE then begin bError := True; ShowErrorMessage; end;
Delphi-Quellcode:
Ich benutze lieber ein paar Exits und bleibe linear als dass ich mein Programm so weit verschachtele, dass ich horizontal scrollen muss.
if call_function1 <> ERROR_TYPE then
if call_function2 <> EROOR_TYPE then if call_function3 <> ERROR_TYPE then begin //Code ausführen end else ShowErrorMessage; else ShowErrorMessage; else ShowErrorMessage; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 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