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

mehrere Exception abfangen

Beitragvon Twilo » 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
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Beitragvon roschi » 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
Fuer Alle, die in Python einsteigen wollen, kann ich das Buch A Byte of Python nur waermstens empfehlen!
BlackJack

Beitragvon 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

Beitragvon str1442 » 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:

Beitragvon Twilo » 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

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]