Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [Quiz] wann darf auf ein Semikolon ein ELSE folgen? (https://www.delphipraxis.net/184517-%5Bquiz%5D-wann-darf-auf-ein-semikolon-ein-else-folgen.html)

mjustin 2. Apr 2015 07:08

AW: [Quiz] wann darf auf ein Semikolon ein ELSE folgen?
 
Zitat:

Zitat von Popov (Beitrag 1295877)
Delphi Hilfe meint es:
...
Wikibook.org meint es:
...
Delphi-Tref meint es

Die Delphi Hilfe gefällt mir hier am besten, denn sie deutet an ("HandleAllOthers"), dass der else Zweig für alle anderen Exceptions zuständig ist.

Wikibook.org und Delphitreff haben die Beispiel so reduziert, dass dieses Detail fehlt und man leicht annehmen könnte, das else gälte für den Fall dass keine Exception auftritt. Wenn man die Beispiele in Art Pseudocode übersetzen würde, und auf die Einrückung verzichtet, entspricht es:

Code:
Versuche <...> BeiAusnahmen <...> Sonst <...> Ende
Bei case Anweisungen ist das else etwas weniger missverständlich:

Code:
Falls <...> Sonst <...> Ende

Uwe Raabe 2. Apr 2015 07:36

AW: [Quiz] wann darf auf ein Semikolon ein ELSE folgen?
 
Zitat:

Zitat von Popov (Beitrag 1295863)
Wenn Else zu On gehört, dann müsste es dem Except-Block egal sein ob es vorher noch ein Hallo sagt.

Genau. Wenn else zu on gehören würde, dann müsste man für jedes on ein eigenes else schreiben können. Insbesondere darf aber nach einem else kein on mehr kommen.

Es ist ja auch so, daß für das else kein begin-end für mehrere Anweisungen im else-Block notwendig ist, sondern das end des try-except-end das else abschließt.

Zitat:

Zitat von himitsu (Beitrag 1295859)
PS: ELSE gibt es dort nur, wenn vorher ein ON steht.

Nicht zwingend! Auch das hier compiliert (unter XE7) und ist faktisch identisch mit dem ohne die else-Zeile:

Delphi-Quellcode:
var
  t: TDateTime;
  a: Integer;
begin
  try
    t := StrToDate('40.01.2015');
    Writeln(DateToStr(t));

    a := 5;
    Writeln(IntToStr(10 div (a-5)));
  except
  else
    Writeln('WTF');
    Writeln('Else');
  end;
end;
Die Frage des Einrückens bleibt aber trotzdem immer noch Geschmackssache.

Der schöne Günther 2. Apr 2015 08:38

AW: [Quiz] wann darf auf ein Semikolon ein ELSE folgen?
 
Und ich dachte immer der Glaubenskrieg zwischen Leerzeichen- und Tab-Verfechtern sei der schlimmste :-D

Uwe Raabe 2. Apr 2015 08:44

AW: [Quiz] wann darf auf ein Semikolon ein ELSE folgen?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1295920)
Und ich dachte immer der Glaubenskrieg zwischen Leerzeichen- und Tab-Verfechtern sei der schlimmste :-D

:) Glaubenskrieg ist die Frage der Einrückung. Was der Compiler akzeptiert und daraus macht hat mit Glauben nichts zu tun.

Sherlock 2. Apr 2015 09:20

AW: [Quiz] wann darf auf ein Semikolon ein ELSE folgen?
 
Ich komme mal auf die Ausgangsfrage zurück und beantworte knapp und praktisch (probieren geht ja bekanntlich über studieren): Wenn es kompiliert.
Komm ich jetzt im Fernsehen?
:stupid:
Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.
Seite 4 von 4   « Erste     234   

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