Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   wie funktioniert try except (https://www.delphipraxis.net/134850-wie-funktioniert-try-except.html)

daNiii 30. Mai 2009 14:50


wie funktioniert try except
 
Hi!
Ich habe ein großes Problem mit try except. Laut meinen Recherchen müsste das Programm versuchen, den Programmcode zwischen try und except durchzulaufen. Ergibt sich in diesem Bereich ein Problem, so überspringt das Programm und läuft nach except weiter.

In meinen Programm aber gibt es Differenzen.
Kann das Programm den Programmcode zwischen try und except nicht durchlaufen, so kommt ein Fehlermeldung!

Delphi-Quellcode:
 try
 Test:= adoquery1.FieldValues['Favoriten'];
    showmessage('Der Track ist bereits bei den Favoriten');

except
   //Test2:= strtoint(Test);
   CD:= cb_cd.text;
      adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.Add('insert into Favoriten (Favoriten, CD) values("'+favorit+'", "'+CD+'")');
adoquery1.execsql;
favoritenladen();
end;

Jakob Ullmann 30. Mai 2009 15:09

Re: wie funktioniert try except
 
Wenn eine Fehlermeldung kommt, liegt es wahrscheinlich an deiner Syntax. Try-Except ist für Ausnahmefehler (Exceptions) gedacht... Zum Beispiel Division durch 0 oder sowas (oder StrToInt-Konvertierung). Ist 'Test' deklariert? Passt die Deklaration zum Rückgabetyp von adoquery1.FieldValues[n]?

EDIT: Kopiere bitte mal die Fehlermeldung!

Jens Hartmann 30. Mai 2009 15:16

Re: wie funktioniert try except
 
Hallo,

ich weiß nicht genau was du mit try/Except vorhast, dies ist wie oben genannt für Fehlerbehandlungen gedacht. Wenn ich deinen Code richtig versteh, willst Du einen Titel zu deiner Favoritendatenbank zufügen, wenn er noch nicht darin steht.

Das solltest Du dann eventuell mit "IF" versuchen.

Gruß Jens

Jakob Ullmann 30. Mai 2009 15:25

Re: wie funktioniert try except
 
Sorry, hab Fehlermeldung als Compilerfehlermeldung interpretiert. Wenn damit Exception gemeint ist, vergiss bitte, was ich geschrieben habe.

jaenicke 30. Mai 2009 16:05

Re: wie funktioniert try except
 
Wichtig: Wenn eine Exception kommt, wird diese in Delphi auch innerhalb eines try..except angezeigt. Nur wenn das Programm außerhalb von Delphi ohne Debugger ausgeführt wird oder die Exception in Delphi auf ignorieren gestellt wird, wird die Fehlermeldung von try..except geschluckt und gar nicht angezeigt.

daNiii 30. Mai 2009 16:23

Re: wie funktioniert try except
 
Danke für eure Antworten.
Ich habe mein Problem jetzt mit IF gelöst.

Jakob Ullmann 30. Mai 2009 16:52

Re: wie funktioniert try except
 
Zitat:

Zitat von jaenicke
oder die Exception in Delphi auf ignorieren gestellt wird, wird die Fehlermeldung von try..except geschluckt und gar nicht angezeigt.

Letzteres geht mit Tools -> Debugger-Optionen -> Sprach-Exceptions -> Bei Delphi-Exceptions stoppen -> OK (D7). Bei neuen findet man das glaube ich unter der Rubrik "Debugger" bei den Optionen.

jaenicke 30. Mai 2009 16:59

Re: wie funktioniert try except
 
Zitat:

Zitat von Jakob Ullmann
Bei neuen findet man das glaube ich unter der Rubrik "Debugger" bei den Optionen.

Bei normalen Versionen klickt man einfach bei der Anzeige der Exception an, dass die in Zukunft ignoriert werden soll.
Nur bei sehr alten Versionen wie Delphi 7 oder früher gibts das noch nicht. ;-)

Jakob Ullmann 30. Mai 2009 17:25

Re: wie funktioniert try except
 
Zitat:

Zitat von jaenicke
Zitat:

Zitat von Jakob Ullmann
Bei neuen findet man das glaube ich unter der Rubrik "Debugger" bei den Optionen.

Bei normalen Versionen klickt man einfach bei der Anzeige der Exception an, dass die in Zukunft ignoriert werden soll.
Nur bei sehr alten Versionen wie Delphi 7 oder früher gibts das noch nicht. ;-)

Wusste ich noch gar nicht. Cooles Feature... :drunken:

Muetze1 30. Mai 2009 17:46

Re: wie funktioniert try except
 
daNiii: Ich vermute du meinstest das try/finally Sprachmittel und nicht try/except. Ersteres sorgt dafür, dass der Finally Block immer durchlaufen wird, auch im Fehlerfall.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr.
Seite 1 von 4  1 23     Letzte »    

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