Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Exception lässt sich nicht abfangen (https://www.delphipraxis.net/110204-exception-laesst-sich-nicht-abfangen.html)

Overclocker 14. Mär 2008 17:34


Exception lässt sich nicht abfangen
 
Hi,

folgendes Problem bei dem Code:
Delphi-Quellcode:
 
begin
        with dm.VarCommand1 do
        begin
        commandtext := 'INSERT INTO db(sdf, sdf, sdf,sdf, sdf, sdf, sdf, sdf, sdf, sdf, sdf, sdf)'
        +' VALUES (:sdf,:sdf,:sdf,:sdf,:sdf,:plz,:sdf,:sdf,:sdf,:sdf,:sdf,:sdf)';
        Parameters.parambyname('123').value := Edit1.text;
...
        try execute
        except messagedlg('Fehler beim Speichern, bitte überprüfen Sie ihre Eingaben',mtError,[mbOK],0);
        end;
   end;
wenn beim speichern (also wenn execute aufgerufen wird ) ein fehler auftritt, die exception mit dem messagedlg abfangen.

z.b. bei einem integer feld schreib ich 'test' rein,dann kommt die exception dass das feld kein Integer ist (kennt ihr ja) aber danach kommt KEINE Fehlermeldung von mir

wieso führt er das nicht aus???

mkinzler 14. Mär 2008 17:37

Re: Exception lässt sich nicht abfangen
 
Weil sich der auslösende Code nicht innerhalb des Try-Blocks befindet

Overclocker 14. Mär 2008 17:40

Re: Exception lässt sich nicht abfangen
 
ah ok hab mal alles in den try ... gesetzt dann gings

aber wieso?kann mir einer die logik sagen?
dachte immer:

Try... anweisung(also z.b. das execute)
except ...anweisung(showmessage....usw.)
finally(führt er aus bei fehlerfreiem ablauf,wobei except und finally nicht gleichzeitig genutzt werden können oder?))

danke

jfheins 14. Mär 2008 17:42

Re: Exception lässt sich nicht abfangen
 
Richtig - das stimmt so schon, aber:

Die Exception kommt bereits bei "Parameters.parambyname('123').value := Edit1.text;" - also ausserhalb des try-Blocks ;)

mkinzler 14. Mär 2008 17:45

Re: Exception lässt sich nicht abfangen
 
finally wird auf jedenfall ausgeführt

Overclocker 14. Mär 2008 17:49

Re: Exception lässt sich nicht abfangen
 
@jfheins

aber wieso kommt hier schon die exception?Selbst wenn ich hier ins feld wo als integer deklariert wurde (NUR in der datenbank) einen text reinschreibe, so kommt die verbindung doch erst bei EXECUTE zustande, d. h. erst hier wird doch geprüft ob alles passt oder nicht?

jfheins 14. Mär 2008 17:52

Re: Exception lässt sich nicht abfangen
 
Setze mal nen Breakpoint und geh mit F7/F8 durch, dann siehst du genau, wo die Exception herkommt ;)

Overclocker 14. Mär 2008 17:54

Re: Exception lässt sich nicht abfangen
 
ah ok hast recht :)

wieder was dazugelernt dankeschön :)

schönes wochenende


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz