Fehlermeldung erzeugen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pktm
User
Beiträge: 8
Registriert: Dienstag 9. Januar 2007, 19:18

Hallo!

Wie mache ich das, dass mein Programm abbricht und eine Fehlermeldung von sich gibt?

Gibt es eine ARt break für das ganze Programm?

Grüße, pktm
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Code: Alles auswählen

import sys
sys.stderr.write("Error!!!!\n")
sys.exit(1)
pktm
User
Beiträge: 8
Registriert: Dienstag 9. Januar 2007, 19:18

Danke!
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Andere Möglichkeit

Code: Alles auswählen

raise SystemExit("blablabla")
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Joghurt hat geschrieben:Andere Möglichkeit

Code: Alles auswählen

raise SystemExit("blablabla")
Nett (:
lunar

Joghurt hat geschrieben:Andere Möglichkeit

Code: Alles auswählen

raise SystemExit("blablabla")
Alternative: sys.exit("tschüss")
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

veers hat geschrieben:

Code: Alles auswählen

import sys
sys.stderr.write("Error!!!!\n")
sys.exit(1)
Das sollte ebenfalls äquivalent zu ``sys.exit('foo')`` sein (wobei ich vermute, das ``exit()`` selbst eine abschließendes Newline setzt. ``sys.exit()`` rufe ich nur mit einem Integer auf, um Kommandozeilenfehler mit der Nummer 2 zu signalisieren (sofern ich nicht ein Modul wie ``optparse`` verwende, dass das hoffentlich von selbst so richtig macht), ansonsten liefert es bei einem String-Parameter immer 1. Ein sauberer Exit sollte mit 0 quittiert werden, was ohne Parameter wohl passiert (das Überprüfen in der Doku bleibt dem anwendenden Leser überlassen) - sofern der Aufruf überhaupt notwendig ist, weil ein normal durchlaufendes Programm ja auch mit 0 als Rückgabe beendet wird.
Antworten