![]() |
Exception lässt sich nicht abfangen
Hi,
folgendes Problem bei dem Code:
Delphi-Quellcode:
wenn beim speichern (also wenn execute aufgerufen wird ) ein fehler auftritt, die exception mit dem messagedlg abfangen.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; 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??? |
Re: Exception lässt sich nicht abfangen
Weil sich der auslösende Code nicht innerhalb des Try-Blocks befindet
|
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 |
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 ;) |
Re: Exception lässt sich nicht abfangen
finally wird auf jedenfall ausgeführt
|
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? |
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 ;)
|
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