200 Wörter
1 Minuten
Python Exceptions

Auch in Python lassen sich natürlich Fehler ordentlich abfangen. try / except werden folgendermaßen eingesetzt:

try:
    print(5/0)
except ZeroDivisionError:
    print("Teilen durch 0 ist nicht erlaubt")

Sinn und Zweck von try / except erkennst Du, wenn Du die Berechnung innerhalb des print() einfach ohne try/except ausführst.

try:
    with open ("datei.xyz", "r") as file:
    print(file)
except FileNotFoundError:
    print("Die Datei konnte nicht geöffnet werden.")

mehrere exceptions abfangen#

try:
    print(5/0)
    with open ("datei.xyz", "r") as file:
        print(file)
except FileNotFoundError:
    print("Die Datei konnte nicht geöffnet werden.")
except ZeroDivisionError:
    print("Teilen durch 0 ist nicht erlaubt")

eigene exceptions#

Eigene Fehlerklassen lassen sich ebenfalls definieren. Hierbei ist der Klassenname von besonderer Bedeutung – Inhalt muss nicht zwingend vorhanden sein. In dem Fall reicht ein einfaches pass.

class InvalidEmailError(Exception):
    pass

Testen wir nun eine eigene Fehlerklasse, indem wir einen Fehler provozieren:

def send_mail(email, subject, content):
    if not "@" in email:
        raise InvalidEmailError("Kein @-Zeichen vorhanden.")
# raise nur bei seltenen (kritischen) Fehlern verwenden
try:
    send_mail("Hallo.email.com", "Betreff", "Inhalt")
except InvalidEmailError:
    print("Bitte gültige Email einfügen")

finally#

Um nicht jeden möglichen Fehler abfangen zu müssen, führt finally am Ende die angegebene Anweisung IMMER aus. Im Beispiel wird einfach die Datei geschlossen, die unter try geöffnet wird.

try:
    file = open("../data.txt", "r")
    print(file)
    print(20/x)
except FileNotFoundError:
    print("Datei nicht gefunden!")
finally:
    print("Die Datei wurde geschlossen...")
    file.close()
Python Exceptions
https://www.couchidee.com/posts/python-exceptions/
Autor
Christian Böhm
Veröffentlicht am
2022-07-01