Dirks-Computerforum

Normale Version: Python-Kurs (Teil 12): Fehler abfangen – so stürzt dein Programm nicht ab
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo und willkommen zurück!

Du kannst jetzt Programme schreiben, die mit Nutzern interagieren und sogar Dateien bearbeiten. Aber was passiert, wenn ein Nutzer anstelle einer Zahl einen Buchstaben eingibt? Dein Programm würde abstürzen und einen Fehler anzeigen. Um das zu verhindern, nutzen wir die Fehlerbehandlung.

Stell dir das wie eine Art Sicherheitsnetz vor: Dein Programm versucht eine Aktion (try), und wenn etwas schiefgeht, springt es in einen zweiten Block (except), um das Problem elegant zu lösen.

1. Die try- und except-Blöcke

Der Code, der möglicherweise einen Fehler verursacht, steht im try-Block. Der Code, der ausgeführt wird, wenn ein Fehler auftritt, steht im except-Block.

Beispiel:

Code:
try:
    zahl = int(input("Gib eine ganze Zahl ein: "))
    print("Deine Zahl ist: " + str(zahl))
except:
    print("Das war keine Zahl! Bitte versuche es erneut.")


Wenn der Nutzer 10 eingibt, wird der Code im try-Block ausgeführt. Gibt er jedoch zehn ein, tritt ein Fehler auf, der except-Block fängt ihn ab und gibt eine freundliche Fehlermeldung aus. Dein Programm stürzt nicht ab!

2. Einen bestimmten Fehler abfangen

Oft ist es hilfreich zu wissen, welche Art von Fehler aufgetreten ist. Du kannst den except-Block so anpassen, dass er nur auf bestimmte Fehlertypen reagiert. Der Fehler bei der Umwandlung von Text in eine Zahl heißt ValueError.

Beispiel:

Code:
try:
    zahl = int(input("Gib eine ganze Zahl ein: "))
    print("Deine Zahl ist: " + str(zahl))
except ValueError:
    print("Ungültige Eingabe! Du musst eine Ziffer eingeben.")
except FileNotFoundError:
    print("Die gesuchte Datei wurde nicht gefunden.")

[attachment=17]

Jetzt kannst du verschiedene Fehler gezielt abfangen. Das ist die Basis für robuste, professionelle Programme.

In der nächsten Lektion wagen wir uns an ein fortgeschrittenes Thema: die Objektorientierte Programmierung (OOP).

<< Zurück zur Kurs-Übersicht: Was ist Python und warum du es lernen solltest