Python Fortgeschritten: Fehlerbehandlung (try / except)

Ziel des Levels

Heute lernst du:

Am Ende kannst du Programme schreiben, die nicht abstürzen, wenn der Nutzer falsche Eingaben macht.

Schritt 1: Warum Fehlerbehandlung wichtig ist

Programme stürzen ab, wenn sie unerwartete Eingaben erhalten:

Beispiel ohne Fehlerbehandlung:


number = int(input("Gib eine Zahl ein: "))
print(10 / number)

Problem:

Schritt 2: try / except verwenden

try → Codeblock, der Fehler verursachen kann
except → was passiert, wenn ein bestimmter Fehler auftritt


try:
    number = int(input("Gib eine Zahl ein: "))
    print(10 / number)
except ValueError:
    print("Bitte gib eine gültige Zahl ein!")
except ZeroDivisionError:
    print("Division durch Null ist nicht erlaubt!")

Erklärung:

Schritt 3: Allgemeine Fehlerbehandlung

Du kannst auch alle Fehler abfangen, wenn du den genauen Typ nicht kennst:


try:
    # code
except:
    print("Ein Fehler ist aufgetreten!")

Tipp:

Schritt 4: Praxis – Zahlenratespiel

Wir verbessern das Zahlenratespiel aus Tag 7:

Problem vorher:


guess = int(input("Rate die Zahl von 1 bis 10: "))

Mit Fehlerbehandlung:


import random

number = random.randint(1, 10)
guess = 0
attempts = 0

while guess != number:
    try:
        guess = int(input("Rate die Zahl von 1 bis 10: "))
        attempts += 1
        if guess < number:
            print("Zu niedrig!")
        elif guess > number:
            print("Zu hoch!")
        else:
            print("Richtig! Du hast", attempts, "Versuche gebraucht!")
    except ValueError:
        print("Bitte gib eine Zahl ein!")

Erklärung:

Übungsaufgabe

Verbessere dein bestehendes Zahlenratespiel: