Aufgabe 1: Einfacher Fehler

Fange einen Fehler mit try und except ab.

Das Programm soll versuchen, durch 0 zu teilen.

Musterlösung: Einfacher Fehler
try:
    print(10 / 0)

except:
    print("Ein Fehler ist aufgetreten")

Aufgabe 2: Bestimmten Fehler behandeln

In Python können bestimmte Fehlertypen einzeln behandelt werden.
Dadurch kann das Programm genauer auf Probleme reagieren.

In dieser Aufgabe soll ein ValueError abgefangen werden.

Musterlösung: ValueError
try:
    zahl = int("Hallo")

except ValueError:
    print("Ungültige Zahl")

Aufgabe 3: Benutzereingaben absichern

Programme sollten niemals davon ausgehen, dass Benutzer immer korrekte Daten eingeben.

Deshalb wird Fehlerbehandlung oft bei input() verwendet.

Das Programm soll:

  • eine Zahl vom Benutzer abfragen,
  • diese Zahl durch 10 teilen,
  • Fehler bei falscher Eingabe abfangen.
Musterlösung: Sichere Eingaben
try:
    zahl = int(input("Zahl eingeben: "))

    print(10 / zahl)

except ValueError:
    print("Bitte nur Zahlen eingeben")

except ZeroDivisionError:
    print("Division durch 0 nicht erlaubt")

Aufgabe 4: Mehrere Fehlerarten behandeln

In echten Programmen können gleichzeitig verschiedene Fehler auftreten.
Deshalb werden oft mehrere except Blöcke verwendet.

Erstelle ein Programm, das:

  • zwei Zahlen vom Benutzer abfragt,
  • die erste Zahl durch die zweite teilt,
  • zusätzlich eine Liste verwendet,
  • einen Index vom Benutzer abfragt,
  • mögliche Fehler behandelt.

Das Programm soll folgende Fehler erkennen:

  • falsche Zahleneingabe,
  • Division durch 0,
  • ungültiger Listenindex.
Musterlösung: Mehrere Fehler behandeln
zahlen = [10, 20, 30]

try:
    a = int(input("Erste Zahl: "))
    b = int(input("Zweite Zahl: "))

    print("Ergebnis:", a / b)

    index = int(input("Index wählen: "))

    print(zahlen[index])

except ValueError:
    print("Bitte nur Zahlen eingeben")

except ZeroDivisionError:
    print("Division durch 0 ist nicht erlaubt")

except IndexError:
    print("Ungültiger Index")

Aufgabe 5: Schwierige Fehlerbehandlung mit Dateien

Erstelle ein Programm, das:

  • den Namen einer Datei vom Benutzer abfragt,
  • versucht die Datei zu öffnen,
  • jede Zeile nummeriert ausgibt,
  • zählt wie viele Zeilen die Datei besitzt,
  • Fehler behandelt.

Zusätzlich soll:

  • bei jeder erfolgreichen Ausführung "Datei erfolgreich gelesen" erscheinen,
  • ein finally Block verwendet werden.
Musterlösung: Komplexe Fehlerbehandlung
dateiname = input("Dateiname: ")

try:
    with open(dateiname, "r") as file:
        count = 0

        for zeile in file:
            count += 1
            print(str(count) + ": " + zeile)

    print("Datei erfolgreich gelesen")
    print("Anzahl der Zeilen:", count)

except FileNotFoundError:
    print("Datei wurde nicht gefunden")

except PermissionError:
    print("Keine Berechtigung für diese Datei")

except Exception as fehler:
    print("Unbekannter Fehler:", fehler)

finally:
    print("Programm beendet")

Nach oben scrollen