Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Prozedur vorzeitig beenden (https://www.delphipraxis.net/11726-prozedur-vorzeitig-beenden.html)

mirko2000 12. Nov 2003 15:59


Prozedur vorzeitig beenden
 
Mit welchem Befehl kann ich eine Prozedur vorzeitig beenden (bei VB6 ist es 'exit sub')?

Tyrael Y. 12. Nov 2003 16:01

Re: Prozedur vorzeitig beenden
 
hier auch fast ^^

Delphi-Quellcode:
exit;

himitsu 12. Nov 2003 16:01

Re: Prozedur vorzeitig beenden
 
Delphi-Quellcode:
Exit;
:mrgreen:

mirko2000 12. Nov 2003 16:05

Re: Prozedur vorzeitig beenden
 
Danke! Hätte nicht gedacht, dass der Befehl so einfach ist! :mrgreen:

samson 12. Nov 2003 16:20

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

Luckie 12. Nov 2003 16:26

Re: Prozedur vorzeitig beenden
 
Würde ich so pauschal nicht sagen. Selbst in Borland Sourcen findet man exits.

choose 12. Nov 2003 16:33

Re: Prozedur vorzeitig beenden
 
Zitat:

Zitat von Luckie
Selbst in Borland Sourcen findet man exits.

Das hat nichst zu sagen ;)

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

Luckie 12. Nov 2003 16:54

Re: Prozedur vorzeitig beenden
 
Zitat:

Zitat von choose
Zitat:

Zitat von Luckie
Selbst in Borland Sourcen findet man exits.

Das hat nichst zu sagen ;)

Hat auch nichts zu sagen. Nur gehe ich davon aus, dass das keine Anfänger sind und wissen, was sie da machen. :zwinker:

Chewie 12. Nov 2003 17:16

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:
  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;
Das finde ich übersichtlicher als:
Delphi-Quellcode:
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;
oder gar:
Delphi-Quellcode:
  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;
Ich benutze lieber ein paar Exits und bleibe linear als dass ich mein Programm so weit verschachtele, dass ich horizontal scrollen muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 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