AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

try except und Finally Problem

Ein Thema von renekr · begonnen am 23. Dez 2005 · letzter Beitrag vom 24. Dez 2005
Antwort Antwort
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#1

try except und Finally Problem

  Alt 23. Dez 2005, 18:02
Hallo,

Ich habe ein kleines Problem mit dem Try Code:

Folgender Source;
Delphi-Quellcode:
try
try
  DMPlaetzePflegen.ADOCommand1.CommandText :='sql_string';
  DMPlaetzePflegen.ADOCommand1.Execute;

except
FAILSQL;
end; // except end;


finally
PASSSQL;
end; //Finally End;
Das ist doch eigentlich der Korrekte Syntax für das Try Except und Finally??

Problem:

Wenn er den ADO Command Befehl nicht absetzen kan nrichtig, weil zb. eine Spalte falsch heißt, dann lauft er ins Except rein und anschließend ins Finally.

Kann mir das jemand erklären?

Vielen Dank.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: try except und Finally Problem

  Alt 23. Dez 2005, 18:04
Was sollte denn sonst passieren deiner Meinung nach?


except wird im Falle einer Exception ausgeführt, und finally auf jeden Fall.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#3

Re: try except und Finally Problem

  Alt 23. Dez 2005, 18:10
Mach so:

Delphi-Quellcode:
try
  DMPlaetzePflegen.ADOCommand1.CommandText :='sql_string';
  DMPlaetzePflegen.ADOCommand1.Execute;

except
Failed := True;
end; // except end;


finally

If Failed Then FAILSQL Else PASSSQL;

end; //Finally End;
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: try except und Finally Problem

  Alt 23. Dez 2005, 18:19
Zitat von Neotracer64:
Mach so:

Delphi-Quellcode:
try
  DMPlaetzePflegen.ADOCommand1.CommandText :='sql_string';
  DMPlaetzePflegen.ADOCommand1.Execute;

except
Failed := True;
end; // except end;


finally

If Failed Then FAILSQL Else PASSSQL;

end; //Finally End;
Kann man natürlich machen, wenn man mit Biegen und Brechen ein finally, das hier total Fehl am Platze ist, verwenden will. Ansonsten würde ich das vorziehen:
Delphi-Quellcode:
try
  DMPlaetzePflegen.ADOCommand1.CommandText :='sql_string';
  DMPlaetzePflegen.ADOCommand1.Execute;

  PASSSQL;
except
  // Am Besten hier auch nur die richtigen Exception-Klassen abfangen
  FAILSQL;
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: try except und Finally Problem

  Alt 23. Dez 2005, 18:26
Vielen DAnk für eure schnellen Antworten.

Werde wohl eine IF abfrage reinmachen müssen.
ist zwar nicht die saubere Lösung aber geht nicht anderst ,weil ich PASS und FAIL getrennt auswerten will.



Vielen Dank und feiert schön morgen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: try except und Finally Problem

  Alt 24. Dez 2005, 01:38
Moin renekr,

Zitat von renekr:
...weil ich PASS und FAIL getrennt auswerten will.
das kannst Du doch bei Sebastians Methode auch.

Im Falle einer Exception wird dort PASS ja nicht aufgerufen, da die Exception ja vom Execute ausgelöst werden würde.
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
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 15:51 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