Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Procedure / Function sauber beenden (https://www.delphipraxis.net/147018-procedure-function-sauber-beenden.html)

DelTurbo 31. Jan 2010 10:11


Procedure / Function sauber beenden
 
Hi,

wie kann ich einer procedure bzw. funktion "sagen" das sie immer am ende rauslaufen soll. Egal ob mitten drin eine exception oder sonstwas passiert ist.

Im moment ist das bei mir so.

Delphi-Quellcode:
procedure xy;
begin
   // mach ganz viel
   // und nochmehr
   // hier passiert was und er springt raus
   procedureende:=True; //<-- hier kommt er dann nie hin
end;
Danke im voraus

mkinzler 31. Jan 2010 10:18

Re: Procedure / Function sauber beenden
 
Delphi-Quellcode:
Try
   ...
finally
   //hier
   ...
end;

himitsu 31. Jan 2010 10:21

Re: Procedure / Function sauber beenden
 
Dieses Try-Finaly heißt zu deutsch soviel wie "Resourcenschutzblock"

Delphi-Quellcode:
O := TMyObject.Create;
try
  // mach was
finally
  O.Free;
end;
Delphi-Quellcode:
M := GetMem(100);
try
  // mach was
finally
  FreeMem(M);
end;

DelTurbo 31. Jan 2010 10:30

Re: Procedure / Function sauber beenden
 
Ah super. Danke. Und das klappt auch wenn innerhalb des try eine procedure aufgerufen wird die auch nicht sauber beendet weil was passiert ist? Weil die sachen die innerhalb des try dürfen ruhig "unsauber" beenden. Das stört mich nicht. Wichtig ist nur das die Hauptprocedure sauber wieder rauskommt.

mkinzler 31. Jan 2010 10:35

Re: Procedure / Function sauber beenden
 
Ja finally wird immer ausgeführt

DelTurbo 31. Jan 2010 10:38

Re: Procedure / Function sauber beenden
 
Super. Vielen vielen dank. Das löst ein DICKES problem.

Obwohl das problem meistens ca. 60cm vorm monitor sitzt :-D

himitsu 31. Jan 2010 10:52

Re: Procedure / Function sauber beenden
 
Zitat:

Zitat von mkinzler
Ja finally wird immer ausgeführt

jain, aber meißtens eindeutliches JA

Sehr schwerwiegende Fehler, wo gleich die ganze Anwendung radikal abstürzt, werden nicht abgefangen.
Dazu zählt auch Delphi-Referenz durchsuchenHalt.


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