Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Möglichkeit: Try ... Except ... Finally ? (https://www.delphipraxis.net/119224-moeglichkeit-try-except-finally.html)

LuCSteR 22. Aug 2008 14:06


Möglichkeit: Try ... Except ... Finally ?
 
Hey,

hab ne Syntaxfrage.
Wie ist es zu formulieren?
Delphi-Quellcode:
try
  begin
    bla;
    blubb;
  end;
except
  begin
    bam;
  end;
finally puh;
Ist sowas möglich? Hab es gerade ausprobiert, aber Compiler meckert, Illegal Expressen beim finally.
Es geht speziell um eine Ini File. Im Try-Block versucht er zu lesen/zu schreiben. Except-Block soll eine Fehlermedlung gezeigt werden, wenn das nicht klappen sollte und Ini.free. Im finally muss ich Ini.free setzen, weil sonst danach garnichts mehr ausgeführt wird. Das ganze findet in einer FormCreate Prozedur statt.

Grüße.

mkinzler 22. Aug 2008 14:08

Re: Möglichkeit: Try ... Except ... Finally ?
 
Entwder
Delphi-Quellcode:
except
oder
Delphi-Quellcode:
finally

LuCSteR 22. Aug 2008 14:17

Re: Möglichkeit: Try ... Except ... Finally ?
 
Also funktioniert das nicht auf meinem Wege? Mmh. Was bringt mir dann die Try-Except, Try-Finally Option?
Bei Java funktioniert das doch auch.
Habe auch versucht Ini.free am Ende des Try-Blocks zu setzen. Bekomme ich allerdings das gleiche Ergebnis, wie wenn ich es außerhalb des Try-Except platziere. Es funktioniert nur, wenn das Ini.Free im Finally-Block sitzt :(

mkinzler 22. Aug 2008 14:19

Re: Möglichkeit: Try ... Except ... Finally ?
 
finally wird immer aufgerufen.

Delphi-Quellcode:
try
  try
    ...
  except
    ..
  end;
finally
  ..
end;

Bernhard Geyer 22. Aug 2008 14:21

Re: Möglichkeit: Try ... Except ... Finally ?
 
Leider hat Delphi hier kein so schönes Konstrukt das man try..except..finally ein einem Block verwenden kann :-(

bernau 22. Aug 2008 14:23

Re: Möglichkeit: Try ... Except ... Finally ?
 
Zitat:

Zitat von LuCSteR
Hey,
Delphi-Quellcode:
try
  begin
    bla;
    blubb;
  end;
except
  begin
    bam;
  end;
finally puh;


Entweder except oder finally.

Du kannst es so schreiben:

Delphi-Quellcode:
try
  bla;
  blubb;
  puh; // Hier wird es nur ausgeführt, wenn die zwei befehle vorher korrekt abgearbeitet wurden.
except
   bam; //Das wir ausgeführt, wenn ein Fehler auftritt.
end;
[/quote]

mkinzler 22. Aug 2008 14:26

Re: Möglichkeit: Try ... Except ... Finally ?
 
Was genau das gegengesetzte wäre, was er will

Angel4585 22. Aug 2008 14:29

Re: Möglichkeit: Try ... Except ... Finally ?
 
Zitat:

Zitat von mkinzler
finally wird immer aufgerufen.

Delphi-Quellcode:
try
  try
    bla;
    blubb;
  except
    bam;
  end;
finally
  puh;
end;


DeddyH 22. Aug 2008 14:30

Re: Möglichkeit: Try ... Except ... Finally ?
 
Man muss das wohl schon so machen, wie in #4 beschrieben.
Pseudo-Code:
Delphi-Quellcode:
Ini := TIniFile.Create(Pfad);
try
  try
    Ini.ReadSomething
  except
    on e: Exception do
      ShowMessage(e.Message);
  end;
finally
  Ini.Free;
end;

LuCSteR 22. Aug 2008 14:31

Re: Möglichkeit: Try ... Except ... Finally ?
 
Alles klar, da hätte ich auch selbst drauf kommen können :)
Außerdem hatte ich auch nen "begin - end" zu viel drinne :s

Vielen Dank für die Hilfe.


----

Hab grad noch schnell Bernaus's Vorschlag probiert.
Funktioniert in meinem Fall genauso hervorragend, wie mkinzler's Lösung. Allerdings ist mkinzler's Lösung sicherer :)
Danke euch beiden. :)

Btw. hatte es schon wie Bernau probiert, jedoch, wie oben schon geschreiben, ein begin - end an der falschen Stelle. :s


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 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