Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Geht auch try...finally....except? (https://www.delphipraxis.net/44531-geht-auch-try-finally-except.html)

gerrit.lober 20. Apr 2005 14:55


Geht auch try...finally....except?
 
Hallo,

ich habe einen try...except...-Block und möchte nun noch finally einfügen,
funktioniert das?

sakura 20. Apr 2005 14:57

Re: Geht auch try...finally....except?
 
Nicht direkt, aber schachteln geht immer:
Delphi-Quellcode:
try
  try
  finally
  end;
except
end;
...:cat:...

Tyrael Y. 20. Apr 2005 14:57

Re: Geht auch try...finally....except?
 
jein!! :mrgreen:

zb

Delphi-Quellcode:
try
  myObj := TMyObj.create;
  try
    ....
  finally
    myObj.free;
  end;
except
  HandleException;
end;

Phoenix 20. Apr 2005 15:29

Re: Geht auch try...finally....except?
 
Erm. Soltte das nicht andersrum geschachtelt werden?

Also sorum:
Delphi-Quellcode:
try
   try
      // tu was
   except
     // behandle Fehler
   end;
finally
   // aufräumen
end;
Weil andersrum würde er in den Except ja gar nicht mehr reinlaufen, wenn der nicht weitergeraised würde.

Waldteufel 20. Apr 2005 15:37

Re: Geht auch try...finally....except?
 
Hi.

Moment... Wenn die Exception nicht weitergeraised wird, ist

Delphi-Quellcode:
try
  {...1}
  try
  except
  end;
finally
  {...2}
end;
dann nicht das selbe wie

Delphi-Quellcode:
{...1}
try
except
end;
{...2}
:?: (Mal abgesehen, dass try...finally und try...except die Programmausführung verlangsamen und die 2. methode somit schneller ist...)

glkgereon 20. Apr 2005 15:40

Re: Geht auch try...finally....except?
 
nein

wenn in 1 ein fehler kommt wird 2 nicht mehr ausgeführt (bei der 2ten methode)

EDIT:
dasselbe wäre das:
Delphi-Quellcode:
try
{...1} 
except
end;
{...2}

alcaeus 20. Apr 2005 15:43

Re: Geht auch try...finally....except?
 
Zitat:

Zitat von Waldteufel
:?: (Mal abgesehen, dass try...finally und try...except die Programmausführung verlangsamen und die 2. methode somit schneller ist...)

Egal ob es langsamer ist oder nicht, das bemerkt der Endbenutzer in 99% der Faelle sowieso nicht. Mit try-finally verhinderst du auf alle Faelle Speicherlecks etc.

Greetz
alcaeus

Tyrael Y. 20. Apr 2005 15:43

Re: Geht auch try...finally....except?
 
selbstverständlich würde das except die Exception kriegen, ...gehen würd auch

Delphi-Quellcode:
try
 myObject := TMyObject.Create;
 try
  try
    myObject.FirstProcedure();
  except
    MachWas;
    raise;
  end;
  ...
  try
    myObject.OtherProcedure();
  except
    MachWas;
  end;
 finally
  myObject.Free;
 end;
except
  HandleException;
end;
..bei dem Beispiel würde bei einer Exception bei FirstProcedure diese behandelt
und weitergegeben ducrh das raise;
..bei einer Exception bei OtherProcedure würde dieser in dem ihn umgebenden except
behandelt aber zum äusseren except nicht weitergegeben..

es kommt immer auf deine Bedürnisse an, aber die Verschachtelung geht immer


mfg

Speedmaster 20. Apr 2005 16:00

Re: Geht auch try...finally....except?
 
Wie ist das eigenltich verlangsamt sich das Programm auch( sehr ) wenn ich eine Programmumfassende try..except..end Anweisung Einfüge?

Tyrael Y. 20. Apr 2005 16:02

Re: Geht auch try...finally....except?
 
Programmumfassend? Wie meinst du das? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.
Seite 1 von 3  1 23      

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