AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

except und finally

Ein Thema von nailor · begonnen am 9. Mär 2003 · letzter Beitrag vom 10. Mär 2003
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#1

except und finally

  Alt 9. Mär 2003, 21:59
Ist es möglich, except und finally in einen try-Block zu quetschen.

Ich will das finally wegen Dateifunktionen haben, damit die Streams gefreet werden, aber wenn es einen Fehler gibt, soll noch zusätzlich was anderes gemacht werden. Wie mach ich das am besten?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#2
  Alt 9. Mär 2003, 22:24
geht es denn so nicht?
Delphi-Quellcode:
...
  try
     ...
     try
       ...
     except
       ...
     end;
   finally
   ...
  end;
...
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3
  Alt 9. Mär 2003, 22:25
Hallo Nailor,

ja das geht:

Delphi-Quellcode:
try
  try
    ...
  finally
    ...
  end;
except
  ...
end;
Wenn du es in dieser Reihenfolge schachtelst, wird eine mögliche exception im finally Block auch noch abgefangen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#4
  Alt 9. Mär 2003, 22:28
Tschuldige, für falsch-herum-Antwort .
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#5
  Alt 9. Mär 2003, 22:28
Wierum nun?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#6
  Alt 9. Mär 2003, 22:29
Sicher, dass das finally den Fehler nicht schluckt, und das except dann nicht mehr "hochgeht"?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#7
  Alt 9. Mär 2003, 22:30
wenn ich es mir zwar überlege, könnte meines doch stimmen.


**************************
zuerst
blablabla
falls Fehler auftritt
blablabla
schlussendlich
blablabla
***************************


Nachtrag : Probiers doch einmal aus.
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 9. Mär 2003, 23:57
Meistens ist die Reihenfolge egal. Es werden immer beide Blöcke ausgeführt.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#9
  Alt 10. Mär 2003, 08:05
Hallo Nailor,

ein finally Block "schluckt" die exception nicht. Die Exception wird nur durch ein except Block als "bearbeitet" angesehen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#10
  Alt 10. Mär 2003, 16:34
Delphi-Quellcode:
try
try
  //Streams Createn
except
  //Fehlermeldungen
end;
//Das, was getan werden soll, wenn keine Fehler da waren
finally
//Streams freen
end;
Jetzt wird doch aber der "//Das, was getan werden soll, wenn keine Fehler da waren"-Block immer abgearbeitet. Soll er aber nicht. Soll er nur, wenn der except Block nicht durchlaufen wurde, weil es ja keinen Sinn hat, zu speichern, wenn der Stream nicht da ist.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:10 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