Exception durchreichen

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
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Samstag 3. März 2007, 00:25

Ich möchte eine Exception abfangen, darauf reagieren und die abgefangene Exception dann nochmal auslösen, also quasi an den Code "durchreichen", der meinen Code benutzt. Ungefähr so:

Code: Alles auswählen

try:
    spam()
except Exception:
    # e.g. clean up and exit
    eggs()
    throw_exception(Exception)
    return
Wie macht man sowas?
dst
User
Beiträge: 27
Registriert: Mittwoch 28. Februar 2007, 23:42

Samstag 3. März 2007, 00:53

Da ich selbst Python-Neuling bin, bin ich mir nicht hunderprozentig sicher, aber

Code: Alles auswählen

try:
    spam()
except Exception:
    eggs()
    raise
sollte glaube ich reichen.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Samstag 3. März 2007, 01:01

Sieht gut aus :D Danke!
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Samstag 3. März 2007, 06:19

EDIT: Hab mich verlesen.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Samstag 3. März 2007, 06:36

droptix hat geschrieben:Sieht gut aus :D Danke!
Falls du evtl eine andere Funktion verwenden moechtest, kannst du die Exception auch uebergeben (ist ja wie alles andere in Python auch, ein Objekt) jederzeit werfen. Also beispielsweise so:

Code: Alles auswählen

def wirf(e): raise e

def funktion(**args):
    try: something()
    except Exception, e: wirf(e)
naja, sieht n bissl komisch aus... aber ist hoffentlich verstaendlich ^^
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Antworten