mehrere Exception abfangen

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
Twilo
User
Beiträge: 109
Registriert: Mittwoch 10. Januar 2007, 19:17
Wohnort: Berlin
Kontaktdaten:

Freitag 12. Dezember 2008, 16:50

Hallo,

gibt es eine bessere Möglichkeit als diese?

Code: Alles auswählen

    try:
        xyz()
        sys.exit(0)
    except ExceptionA, e:
        a.b(e)
        sys.exit(1)
    except ExceptionB, e:
        a.b(e)
        sys.exit(1)
    except ExceptionC, e:
        a.b(e)
        sys.exit(1)
    except ExceptionD, e:
        a.b(e)
        sys.exit(1)
[...]
mfg
Twilo
[url=http://www.farb-tabelle.de/][b]Farbtabelle[/b][/url]
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Freitag 12. Dezember 2008, 17:07

ja, gibt es:

Code: Alles auswählen

    try:
        xyz()
        sys.exit(0)
    except (ExceptionA, ExceptionB, ExceptionC), e:
        a.b(e)
        sys.exit(1)
lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
BlackJack

Freitag 12. Dezember 2008, 17:08

Entweder:

Code: Alles auswählen

    try:
        xyz()
        sys.exit(0)
    except (ExceptionA, ExceptionB, ExceptionC, ExceptionD), e:
        a.b(e)
        sys.exit(1)
Oder vielleicht auch:

Code: Alles auswählen

    try: 
        xyz()
        sys.exit(0)
    except Exception, e:
        a.b(e)
        sys.exit(1)
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Freitag 12. Dezember 2008, 17:13

Viele Exceptions sind auch logisch in Vererbungsreihenfolgen gegliedert. Man kann dann einfach die Superklasse abfangen lassen und fängt automatisch alle Unterklassen mit. Ein Beispiel ist der EnvironmentError, der die Superklasse für OSError und IOError darstellt.
Twilo
User
Beiträge: 109
Registriert: Mittwoch 10. Januar 2007, 19:17
Wohnort: Berlin
Kontaktdaten:

Sonntag 14. Dezember 2008, 19:13

Hallo,

danke, das hat mir sehr geholfen!

@BlackJack
Exception fange ich ganz am Ende ab, deshalb kann ich das in meinen Fall nicht benutzen

mfg
Twilo
[url=http://www.farb-tabelle.de/][b]Farbtabelle[/b][/url]
Antworten