Ich schreibe gerade eine Konfigurations Klasse und bin dabei auf ein Problem gestossen.
Und zwar würde ich bei einem Fehler beim Parsen gerne eine eigene Exception raisen, dieser kann ich dann noch einige Details, wie die Zeile, Zeilen Nummer etc. beilegen. Mein Problem ist nun das ich die Exception welche die Exception ausgelöst hat nicht verlieren will.
Wenn ich mich recht erinnere kennt C# Inner Exceptions für diesen Zweck. Hat Python etwas vergleichbares?
Gruss,
Jonas
Inner Exceptions
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Nein, hat es (noch) nicht. In diesem Fall kannst du natürlich die "alte" Exception einfach als Attribut an die neue hängen:
Vereinfachen kann man das dann, indem man eine eigene Exception-Klasse erstellt, die als Argument die "alte" Exceptioninstanz nimmt und diese entsprechend anzeigt.
Code: Alles auswählen
try:
if 6 * 9 != 42:
raise RuntimeError("wrong world")
except Exception, exc:
newexc = SystemError("foo")
newexc.previous = exc
raise newexc
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
http://www.python.org/dev/peps/pep-0344/ hab nun sogar ein PEP dazu gefunden