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 except und finally (https://www.delphipraxis.net/3386-except-und-finally.html)

nailor 9. Mär 2003 20:59


except und finally
 
Ist es möglich, except und finally in einen try-Block zu quetschen.

Ich will das finally wegen Dateifunktionen haben, damit die Streams gefreet werden, aber wenn es einen Fehler gibt, soll noch zusätzlich was anderes gemacht werden. Wie mach ich das am besten?

Mirilin 9. Mär 2003 21:24

geht es denn so nicht?
Delphi-Quellcode:
...
  try
     ...
     try
       ...
     except
       ...
     end;
   finally
   ...
  end;
...
:?:

MrSpock 9. Mär 2003 21:25

Hallo Nailor,

ja das geht:

Delphi-Quellcode:
try
  try
    ...
  finally
    ...
  end;
except
  ...
end;
Wenn du es in dieser Reihenfolge schachtelst, wird eine mögliche exception im finally Block auch noch abgefangen.

Mirilin 9. Mär 2003 21:28

Tschuldige, für falsch-herum-Antwort :D .

nailor 9. Mär 2003 21:28

Wierum nun?

nailor 9. Mär 2003 21:29

Sicher, dass das finally den Fehler nicht schluckt, und das except dann nicht mehr "hochgeht"?

Mirilin 9. Mär 2003 21:30

wenn ich es mir zwar überlege, könnte meines doch stimmen.


**************************
zuerst
blablabla
falls Fehler auftritt
blablabla
schlussendlich
blablabla
***************************


Nachtrag : Probiers doch einmal aus.

sakura 9. Mär 2003 22:57

Meistens ist die Reihenfolge egal. Es werden immer beide Blöcke ausgeführt.

...:cat:...

MrSpock 10. Mär 2003 07:05

Hallo Nailor,

ein finally Block "schluckt" die exception nicht. Die Exception wird nur durch ein except Block als "bearbeitet" angesehen.

nailor 10. Mär 2003 15:34

Delphi-Quellcode:
try
try
  //Streams Createn
except
  //Fehlermeldungen
end;
//Das, was getan werden soll, wenn keine Fehler da waren
finally
//Streams freen
end;
Jetzt wird doch aber der "//Das, was getan werden soll, wenn keine Fehler da waren"-Block immer abgearbeitet. Soll er aber nicht. Soll er nur, wenn der except Block nicht durchlaufen wurde, weil es ja keinen Sinn hat, zu speichern, wenn der Stream nicht da ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 Uhr.
Seite 1 von 2  1 2      

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