![]() |
Datenbank: MYSQL • Zugriff über: ODBC
Exception handling
Hi,
ich beschäftige mich gerade mit Exception Ich möchte gerne eine Exception so abfangen.
Delphi-Quellcode:
E2003 Undeklarierter Bezeichner: 'EMySQLException'Except on e: EMySQLException do Showmessage('existiert bereits!'); |
Re: Exception handling
ist EMySQLException definiert und ist diese Definition auch im Namensraum dieser Stelle vorhanden?
|
Re: Exception handling
Nein habe ich nicht, ich nahm an, da ich diese Exception ausgegeben wurde ich sie so verwenden kann.
Es geht darum keine Duplikate in Mysql zu speichern. Erste Gelegenheit für Exception bei $7C812AFB. Exception-Klasse EMySqlException mit Meldung ' #23000Duplicate entry 'Test' for key 2'. |
Re: Exception handling
Dann mußt du suchen, wo diese Exception-Klasse definiert ist und die entsprechende Unit in deine Uses-Liste aufnehmen.
|
Re: Exception handling
Habe ich nun eingebunden allerdings wird das nun ignoriert
Delphi-Quellcode:
Fehler tritt auf, jedoch wird die Nachricht nicht raus gesand das es schon existiert sondern normal Exception Massage.
uses Mysqlerrors;
. . . Except on e: EMySQLException do Showmessage('Test existiert bereits!'); |
Re: Exception handling
Wenn du dein Prog aus der Delphi-IDE startest, zeigt er immer erst die Default-Exception an. Drückst du nach Anzeige dieser Exception nochmals auf F9, kommt dein definierter Code zum tragen.
Beim Starten des Kompilat wird dann nur noch dein Exception-Handling durchgeführt. Alternativ kannst du irgendwo in den Options das default-handling ausstellen (ist aber nicht empfehlenswert)! |
Re: Exception handling
Zitat:
|
Re: Exception handling
Ist dann ganz simpel: Die Exception wird nicht in dem Codeabschnitt geworfen, den du mit try/except umschlossen hast. Also entweder ist es ein anderer MySQL Aufruf oder das ganze läuft asynchron ab und wird somit in einem anderen Thread geworfen...
|
Re: Exception handling
Oder die geworfene Exception gehört nicht zu der Klasse, die du erwartest.
Mit folgenden Code kannst du anzeigen zu welcher Klasse die Exception gehört.
Delphi-Quellcode:
Except
on E: Exception do ShowmessageFmt('%s'#13#10'Class: %s', [E.Message, E.Classname]); |
Re: Exception handling
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08: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