![]() |
Verstaendnisfrage: try ... except ... wohin kommt finally?
Guten Abend allerseits
Nach meinem Verstaendnis gehören zu einer Exception 3 Stufen: Try: man versucht irgendwas zu machen Catch: man faengt etwaige Fehler auf Finally: man gibt etwaige Resourcen wieder frei. Wobei 'finally' auf alle Faelle angesprungen wird: ob nun ein Fehler aufgetreten ist oder nicht. Soweit ich es verstanden habe gibt es in Delphi entweder ein Try-Except oder ein Try-Finally. Aber kein Try-Except-Finally. Nur: wie macht man diese 3-stufige Exception-Handling in Delphi? Oder habe ich irgendwas komplet missverstanden? MfG |
Re: Verstaendnisfrage: try ... except ... wohin kommt finall
Die einzige Möglichkeit, die ich kenne, ist folgende:
Delphi-Quellcode:
try
try Do_Sth; except ... end; finally ... end; |
Re: Verstaendnisfrage: try ... except ... wohin kommt finall
in Delphi gibt es folgende Varianten:
Delphi-Quellcode:
try
//kritischer Code finally //wird immer ausgeführt end; //wird nur ausgeführt wenn kein Fehler auftrat
Delphi-Quellcode:
try
//kritischer Code except //wird nur ausgeführt wenn ein Fehler auftrat end; //wird immer ausgeführt |
Re: Verstaendnisfrage: try ... except ... wohin kommt finall
@SirThornberry
Okay, wenn das die Regeln sind: ich kann mich daran gewöhnen. Ich war nur etwas verunsichert und war der Meinung, etwas komplett misverstaden zu haben. Aber die Lösung von NamenLozer ist nicht schlecht. Werde sie mal bei Gelegenheit austesten. Allen einen schönen Abend. |
Re: Verstaendnisfrage: try ... except ... wohin kommt finall
wie sieht das von dir beschriebene try-catch-finally aus? wird das außerhalb des Blockes nie ausgeführt? oder nur wenn kein Fehler auftritt? Und wie müsste man mit try-catch-finally das ganze bauen damit das außerhalb des Blockes immer ausgeführt wird?
|
Re: Verstaendnisfrage: try ... except ... wohin kommt finall
Die Regel, dass Code nach einem Except-Abschnitt immer ausgeführt wird, gilt nur, wenn keine Exception-Filter verwendet werden. Ich halte es für fatal, dass die meisten Delphi-Programmierer diese normalerweise nicht verwenden. Ich finde, dass man sich in dieser Hinsicht eine Scheibe von Java abschneiden sollte: Dort fängt man normalerweise nur von Exception abgeleitete Klassen. Exceptions wie OutOfMemoryError oder StackOverflowError sind davon nicht berührt.
|
Re: Verstaendnisfrage: try ... except ... wohin kommt finall
Zitat:
diese Lösung ist so allgemein gebräuchlich. Gruss KH |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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