Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi try..finally (https://www.delphipraxis.net/41899-try-finally.html)

RavenIV 10. Mär 2005 13:36


try..finally
 
mich würde interessieren, ob es einen unterschied zwischen
Delphi-Quellcode:
try
  begin
    anweisung1;
    anweisung2;
  end;
finally
   anweisung3;
und
Delphi-Quellcode:
try
  anweisung1;
  anweisung2;
finally
   anweisung3;
gibt.

gruessle

malo 10. Mär 2005 13:37

Re: try..finally
 
Ich wusste gar nicht, dass begin-end-Anweisungsblöcle bei Ressourcenblöckene erlaubt sind :gruebel:


Das zweite kannst du auf jeden Fall so verwenden, damit hatte ich noch nie Probleme :)

Das erste ist wohl eher doppelt gemoppelt ;)

RavenIV 10. Mär 2005 13:39

Re: try..finally
 
Zitat:

Zitat von malo
Ich wusste gar nicht, dass begin-end-Anweisungsblöcle bei Ressourcenblöckene erlaubt sind


auf jeden fall kam keine compiler-meldung...

freak4fun 10. Mär 2005 13:40

Re: try..finally
 
Es ist ein try...finally/except...end; - Block. ;)

MfG
freak

malo 10. Mär 2005 13:43

Re: try..finally
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von malo
Ich wusste gar nicht, dass begin-end-Anweisungsblöcle bei Ressourcenblöckene erlaubt sind


auf jeden fall kam keine compiler-meldung...

Naja, lass lieber die begins und ends weg. Damit hast du sicherlich keinen Nachteil und brauchst weniger zu tippen :)

Binärbaum 10. Mär 2005 13:56

Re: try..finally
 
Also wenn schon, dann sollte es der Vollständigkeit halber so heißen:

Delphi-Quellcode:
try
  anweisungsblock1;//wird solange ausgeführt, bis ein Fehler auftritt
finally
   anweisungsblock;//wird anschließend ausgeführt
end;
Scheinbar vergessen hier einge, dass ein try.. finally immer mit end; beendet werden muss. :wink:
Achso, zum eigentlichen Thema: der Code zwischen try und finally oder try und except muss nicht noch extra mit begin und end umschlossen werden.

MfG
Binärbaum

mr47 10. Mär 2005 14:56

Re: try..finally
 
Zitat:

Zitat von Binärbaum
Also wenn schon, dann sollte es der Vollständigkeit halber so heißen:

Delphi-Quellcode:
try
  anweisungsblock1;//wird solange ausgeführt, bis ein Fehler auftritt
finally
   anweisungsblock;//wird anschließend ausgeführt
end;

Genau. Und bei except anstatt von finally wird der except-block NUR bei einem Fehler ausgeführt.

FAlter 10. Mär 2005 15:38

Re: try..finally
 
BEGIN-END kann man überall im Code hinschreiben, wo man Anweisungen hinschreiben kann (und nicht nur da). TRY-Blöcke erfüllen beide Funktionen. Es ist also auch folgendes möglich:

Delphi-Quellcode:
if a then
try
  Anw1;
  Anw2;
except
  Anw3;
end;
Aus diesem Grund ist es völlig gleich, welche der beiden oben genannten Versionen verwendet werden. Ich wäre für das kürzere.

//edit: CODE- durch DELPHI-Tags ersetzt. FAlter

Binärbaum 10. Mär 2005 16:32

Re: try..finally
 
Zitat:

Zitat von FAlter
BEGIN-END kann man überall im Code hinschreiben, wo man Anweisungen hinschreiben kann (und nicht nur da).

Würde ich aber nicht gerade empfehlen. :wink: Die begin-end-Blöcke sollten ja in gewisser Weise auch die Struktur des Codes wiedergeben. Wenn man dann überall dort begin-end hinschreibt, wird das schnell unübersichtlich.

MfG
Binärbaum

mr47 10. Mär 2005 18:10

Re: try..finally
 
Zitat:

Zitat von Binärbaum
Zitat:

Zitat von FAlter
BEGIN-END kann man überall im Code hinschreiben, wo man Anweisungen hinschreiben kann (und nicht nur da).

Würde ich aber nicht gerade empfehlen. :wink: Die begin-end-Blöcke sollten ja in gewisser Weise auch die Struktur des Codes wiedergeben. Wenn man dann überall dort begin-end hinschreibt, wird das schnell unübersichtlich.

MfG
Binärbaum

oder vielleicht auch übersichtlicher! Je nachdem wie man sie anwendet! (Was heißt nicht nur da? Ja ich kann begin...end auf ein blatt papier schreiben :dance: :mrgreen: )


mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:22 Uhr.
Seite 1 von 2  1 2      

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