AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wird Variable.Free ausgeführt?

Ein Thema von Pseudemys Nelsoni · begonnen am 18. Feb 2004 · letzter Beitrag vom 18. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 08:23
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?
Mario
  Mit Zitat antworten Zitat
MikeS

Registriert seit: 3. Mai 2003
Ort: München
157 Beiträge
 
Delphi 7 Professional
 
#2

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 08:27
ich denke nicht!

Aber dazu gibt es doch try finally Blöcke!
Mike Schröder
Fleiß kann man vortäuschen, faul muss man schon selber sein!
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 08:58
danke für den tip ich hätte aber gern ne ja/nein antwort

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
Mario
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 09:42
Zitat von Pseudemys Nelsoni:
ich hätte aber gern ne ja/nein antwort
Die kann Dir keiner geben. (falls der Fehler fehlerhafterweise doch nicht auftritt)

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.

......

P.S.: Sollte die Excpetion in Procedure2 intern durch einen try...except...end Block gefangen werden, dann wiederum JA.
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 09:45
das wollte ich wissen, DANKE
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 09:58
Hallo,
an dieser Stelle ein kleiner Quiz:
Delphi-Quellcode:
var
  SL : TStringList;
begin
  SL:=TStringList.Create;
  Try
    If MyFunction then
      Exit;
    ...
  Finally
    SL.Free;
    end;
end;
Wird SL.Free ausgeführt, wenn MyFunction True zurückgibt ?
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 09:59
Zitat von Jens Schumann:
Wird SL.Free ausgeführt, wenn MyFunction True zurückgibt ?
Ja

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 10:01
Hallo sakura,
damit liegst Du vollkommen richtig.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 10:06
Und was passiert hier

Delphi-Quellcode:
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
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Wird Variable.Free ausgeführt?

  Alt 18. Feb 2004, 10:09
@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
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.
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