ValueError in try-except-Block

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

ValueError in try-except-Block

Beitragvon Milan » Montag 2. Februar 2004, 20:07

Hi. Ich habe ein kleines Script geschrieben, welches nur mal schnell Alter, Wochentag des Geburtstages und Dauer bis zum Geburtstag berechnet. Nun ist das ganze ein CGI-Script und dem Script soll ein Datum der Form "year-month-day" übergeben werden. Falls sinnlose Angaben gemacht werden, soll ein Standart gesetzt werden, nämlich der 31.12. des aktuellen Jahres. Fehler können meiner Meinung nach nur auftreten, wenn kein datum übergeben wurde, ein falsches Format beim übergeben benutzt wurde oder die Werte keine Zahlen darstellen. Also ein KeyError, falls nix übergeben wurde und ein ValueError sonst.

Ruft man das ganze nun mit einem falschem Datum auf (Jahreszahl negativ --> ein "-" zuviel) entsteht ein ValueError, der eigentlich abgefangen werden sollte. Wird er aber nicht. Warum?

Der Quelltext ausschnitt ist hier zu sehen, zusammen mit entsprechender Variablenbelegung (cgitb ist aktiviert): http://www.pythonarea.net/max/alter.pl?al=-1911-3-23

Milan
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Re: ValueError in try-except-Block

Beitragvon Voges » Montag 2. Februar 2004, 20:29

Hallo!
Die Execptions müssen in Klammern:
except (KeyError,ValueError):
Jan
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Montag 2. Februar 2004, 20:32

Das find ich aber dumm... jetzt wo du es sagst ist es klar, ValueError wird dann als der Parameter interpretiert, in dem das tracebackobj. ladet. Ich war nur gewohnt, dass Tupel auch ohne Klammern erkannt werden... :oops:

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder