![]() |
Wird Variable.Free ausgeführt?
Hallo, mal ne frage,
sagen wir mal mein Code sieht so aus:
Delphi-Quellcode:
procedure2;
begin // hier tritt ein fehler auf end; procedure1; var sl: TStringList; begin sl := TStringList.Create; procedure2; sl.free; end; wird das sl.free noch ausgeführt wenn in procedure2 ein fehler auftrat? |
Re: Wird Variable.Free ausgeführt?
ich denke nicht!
Aber dazu gibt es doch try finally Blöcke! :wink: |
Re: Wird Variable.Free ausgeführt?
danke für den tip :) ich hätte aber gern ne ja/nein antwort :mrgreen:
btw, ich kenne try finally schon, aber würde trotzdem gern wissen wies bei meinem beispiel oben aussehen würde, also obs frei werden würde oder nicht mfg |
Re: Wird Variable.Free ausgeführt?
Zitat:
Wenn in procedure2 eine Exception auftritt, dann NEIN, wenn beim Erstellen der StringListe eine Exception auftritt (z.B. Speicher voll) dann NEIN, wenn keine Expceptions auftreten (weder beim Create noch in procedure2) dann JA. ...:cat:... P.S.: Sollte die Excpetion in Procedure2 intern durch einen try...except...end Block gefangen werden, dann wiederum JA. |
Re: Wird Variable.Free ausgeführt?
das wollte ich wissen, DANKE :mrgreen:
|
Re: Wird Variable.Free ausgeführt?
Hallo,
an dieser Stelle ein kleiner Quiz:
Delphi-Quellcode:
Wird SL.Free ausgeführt, wenn MyFunction True zurückgibt ?
var
SL : TStringList; begin SL:=TStringList.Create; Try If MyFunction then Exit; ... Finally SL.Free; end; end; |
Re: Wird Variable.Free ausgeführt?
Zitat:
...:cat:... |
Re: Wird Variable.Free ausgeführt?
Hallo sakura,
damit liegst Du vollkommen richtig. |
Re: Wird Variable.Free ausgeführt?
Und was passiert hier ;-)
Delphi-Quellcode:
...:cat:...
procedure TForm1.Button1Click(Sender: TObject);
label Hmmmm; begin try goto Hmmmm; finally ShowMessage('2b | !2b'); end; Hmmmm: end; P.S.: Sorry Pseudo..., aber so lernst Du ja auch was ;-) |
Re: Wird Variable.Free ausgeführt?
@Sakura ..ist doch klar was da passiert..
du kriegst paar hinter die Löffeln, weil du GOTO benutzt hast und das nicht geschickter geschrieben hast :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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 by Thomas Breitkreuz