![]() |
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; |
Hallo Nailor,
dann probier doch das mal aus:
Code:
except wird nur bei Fehler abgearbeitet. Es darf natürlich kein unausgewerteter Fehler in
try
try //Streams Createn --> wenn Fehler dann weiter nach except //Das, was getan werden soll, wenn keine Fehler da waren except //Fehlermeldungen end; finally //Streams freen end; dem, "was getan werden soll, wenn kein Fehler da war", auftreten. mfg eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 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