Exceptions

E

try / except

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 untertry 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()

Über den Autor

Christian

Hi, mein Name ist Christian. Ich bin ein ehemaliger Softwareentwickler, der seine Berufung seit nun schon mehreren Jahren im Digital Marketing gefunden hat. Couchidee ist mein kleines privater und digitales Notizbuch / Blog.

#OstThüringen #Gründer #KreativKopf #DigitalMarketing #Development

Kommentar hinzufügen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Über mich

Hi, mein Name ist Christian. Ich bin ein ehemaliger Softwareentwickler, der seine Berufung seit nun schon mehreren Jahren im Digital Marketing gefunden hat. Couchidee ist mein kleines privater und digitales Notizbuch / Blog.

#OstThüringen #Gründer #KreativKopf #DigitalMarketing #Development