AGB  ·  Datenschutz  ·  Impressum  







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

try,except,finally

Ein Thema von Klaus D. · begonnen am 28. Feb 2004 · letzter Beitrag vom 29. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
Klaus D.

Registriert seit: 27. Okt 2003
Ort: 03238 Finsterwalde
124 Beiträge
 
Delphi 6 Professional
 
#1

try,except,finally

  Alt 28. Feb 2004, 14:26
Ich schreibe in eine INI-Datei auf folgende weise.
Delphi-Quellcode:
try
 frmMain.V_Ini:=TiniFile.Create(frmMain.V_Pfad+'\Einstellungen.ini');
 frmMain.V_Ini.WriteInteger('Suchoptionen','ItemIndex',frmEinstellungen.Suchoptionen.ItemIndex);

 frmMain.V_Ini.Free;
 btnOK.Enabled:=false;
except begin
 ShowMessage('Es ist ein Fehler aufgetreten'+#13+'Starten sie das Programm neu und versuchen sie es erneut');
 frmMain.V_Ini.Free;
 btnOK.Enabled:=false;

end;
 end;
  end;
aber ich muß doch die INI auf jeden fall wieder freigeben. Ist es da besser noch mit finally zu arbeiten?
MfG Klaus

[edit=r_kerber]Delphi-Tags eingefügt Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: try,except,finally

  Alt 28. Feb 2004, 14:31
Puh. Schon mal was von Quellcodeformatierung gehört? Also wann wie einrücken und neue Zeile usw.?

Ressourcenschutzblöcke werden generell mit try-finally gemacht.
Delphi-Quellcode:
sl := xcy.Create;
try
  // mach was mit sl
finally
  FreeAndNil(sl);
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: try,except,finally

  Alt 28. Feb 2004, 14:32
Moin Klaus,

die Struktur sollte im Allgemeinen so aussehen:

Delphi-Quellcode:
Resource belegen (in Deinem Falle Objekt erzeugen)
try
  mit der Resource arbeiten
finally
  Resource freigeben
end;
Erst nachdem eine Resource belegt ist wird try verwendet, da vorher ja noch nichts passiert ist.
In Deinem speziellen Fall kannst Du auf den try/except Block verzichten, da WriteInteger keine Exception auslöst.

(BTW: Bei der Meldung die Du generierst, wäre eine vom System vielleicht aussagekräftiger )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: try,except,finally

  Alt 29. Feb 2004, 01:35
Kann man nicht auch alle 3 benutzen? Also:
Delphi-Quellcode:
aha := TStringList.Create;
try
  aha.Add('soso');
except
  ShowMessage('ging nicht!');
finally
  aha.Free;
end;
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#5

Re: try,except,finally

  Alt 29. Feb 2004, 01:43
Zitat von dizzy:
Kann man nicht auch alle 3 benutzen? Also:
neee.... entweder except oder finally.... beides zusammen macht eh keinen Sinn...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: try,except,finally

  Alt 29. Feb 2004, 02:00
Und im EXCEPT Block werden Objekte IMHO nicht wirklich freigegeben.
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#7

Re: try,except,finally

  Alt 29. Feb 2004, 02:28
@dizzy: Wenn Du Gürtel UND Hosenträger benutzen möchtest, kannst Du try/exept bzw.try/finally schachteln:
Code:
[b]begin[/b]
  Objektvariable [b]:=[/b] TObject.Create;
[color=red] [b]try[/b] [/color]
[color=seagreen]   [b]try[/b]
      ObjectVariable.DoSomething;
    [b]except[/b]
      MessageDlg([/color][color=darkblue]'Fehlermeldung'[/color][color=seagreen], mtError, [mbOK], 0);
    [b]end[/b]; [/color]
[color=red] [b]finally[/b]
    FreeAndNil(Objektvariable);
  [b]end[/b];[/color]
[b]end[/b];
Grün: innerer Try-/Except-Block (Gürtel)
Rot : äusserer Try-/Finally-Block (Hosenträger)
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: try,except,finally

  Alt 29. Feb 2004, 03:37
Zitat von Robert_G:
Und im EXCEPT Block werden Objekte IMHO nicht wirklich freigegeben.
Doch, aber nur wenn es vorher kracht und eine Exeception ausgelöst wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Synonym
(Gast)

n/a Beiträge
 
#9

Re: try,except,finally

  Alt 29. Feb 2004, 08:44
Zitat von Luckie:
Zitat von Robert_G:
Und im EXCEPT Block werden Objekte IMHO nicht wirklich freigegeben.
Doch, aber nur wenn es vorher kracht und eine Exeception ausgelöst wird.
Deswegen hat er ja auch wahrscheinlich "nicht wirklich" hingeschrieben!

synonym
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: try,except,finally

  Alt 29. Feb 2004, 10:08
ausserdem brauchst du nach except/finally nicht extra ein "begin..end" für mehrere befehle...
Mario
  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 05:19 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