![]() |
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? |
geht es denn so nicht?
Delphi-Quellcode:
:?:
...
try ... try ... except ... end; finally ... end; ... |
Hallo Nailor,
ja das geht:
Delphi-Quellcode:
Wenn du es in dieser Reihenfolge schachtelst, wird eine mögliche exception im finally Block auch noch abgefangen.
try
try ... finally ... end; except ... end; |
Tschuldige, für falsch-herum-Antwort :D .
|
Wierum nun?
|
Sicher, dass das finally den Fehler nicht schluckt, und das except dann nicht mehr "hochgeht"?
|
wenn ich es mir zwar überlege, könnte meines doch stimmen.
************************** zuerst blablabla falls Fehler auftritt blablabla schlussendlich blablabla *************************** Nachtrag : Probiers doch einmal aus. |
Meistens ist die Reihenfolge egal. Es werden immer beide Blöcke ausgeführt.
...:cat:... |
Hallo Nailor,
ein finally Block "schluckt" die exception nicht. Die Exception wird nur durch ein except Block als "bearbeitet" angesehen. |
Delphi-Quellcode:
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.
try
try //Streams Createn except //Fehlermeldungen end; //Das, was getan werden soll, wenn keine Fehler da waren finally //Streams freen end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr. |
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