Seite 1 von 1

mehrere Exception abfangen

Verfasst: Freitag 12. Dezember 2008, 16:50
von Twilo
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

Verfasst: Freitag 12. Dezember 2008, 17:07
von roschi
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

Verfasst: Freitag 12. Dezember 2008, 17:08
von BlackJack
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)

Verfasst: Freitag 12. Dezember 2008, 17:13
von str1442
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.

Verfasst: Sonntag 14. Dezember 2008, 19:13
von Twilo
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