Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Exceptions in Schleifen (https://www.delphipraxis.net/67355-exceptions-schleifen.html)

Luckie 13. Apr 2006 14:06


Exceptions in Schleifen
 
Ich habe eine Schleife:
Delphi-Quellcode:
for do
begin
  // some code
  try
    MyObject.TuWas;
  except
    // handle exception
  end;
  // some more code
end;
Jetzt könnte es passieren, dass die Methode TuWas von MyObject eine Exception auslöst. Macht er jetzt mit der Schleife weiter oder fliegt er auch aus der Schleife raus?

sniper_w 13. Apr 2006 14:10

Re: Exceptions in Schleifen
 
Er fliegt raus bis zum Caller der Funktion.

Aenogym 13. Apr 2006 14:12

Re: Exceptions in Schleifen
 
hi luckie,

wenn mich nicht alles täuscht, sollte er nach behandeln der exception aus der kompletten prozedur/funktion fliegen. aber: prüf es doch einfach, indem du absichtlich eine exception erzeugst und dann einfach durch-debuggst.

aenogym

Hawkeye219 13. Apr 2006 14:19

Re: Exceptions in Schleifen
 
Zitat:

Zitat von Online-Hilfe
Beim Behandeln einer Exception wird der Aufruf-Stack nach oben bis zu der Prozedur oder Funktion durchlaufen, in der sich die try...except-Anweisung befindet, in der die Behandlung durchgeführt wird. Die Steuerung wird dann an die entsprechende Exception-Behandlungsroutine, else-Klausel oder Anweisungsliste übergeben. Bei diesem Vorgang werden alle Prozedur- und Funktionsaufrufe verworfen, die nach dem Eintritt in den try...except-Block stattgefunden haben. Anschließend wird das Exception-Objekt durch einen Aufruf seines Destruktors Destroy automatisch freigegeben, und die Programmausführung wird mit der nächsten Anweisung nach dem try...except-Block fortgesetzt

Die Schleife wird also nach der Exception-Behandlung normal fortgesetzt.

Gruß Hawkeye

Luckie 13. Apr 2006 14:22

Re: Exceptions in Schleifen
 
Zitat:

Zitat von Hawkeye219
Die Schleife wird also nach der Exception-Behandlung normal fortgesetzt.

Danke, das wollte ichn ur bestätigt haben.


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