🎯 Ziel dieses Teils
- Du verstehst, was ein Fehler im Programm ist
- Du lernst, wie du Fehler abfängst, ohne dass dein Programm abstürzt
- Du setzt
try/except
gezielt in deinem Projekt ein
Was ist ein „Fehler“ in Python?
Ein Fehler (englisch: Exception) passiert, wenn du dem Computer etwas gibst, was er nicht versteht oder nicht verarbeiten kann.
Beispiele:
int("Hallo")
Das führt zu:
ValueError: invalid literal for int() with base 10: 'Hallo'
Oder:
liste = []
print(liste[0])
Führt zu:
IndexError: list index out of range
💥 Und dein Programm stürzt ab.
Lösung: try
und except
Damit kannst du sagen:
„Versuch das mal.
Und wenn’s schiefgeht – fang den Fehler ab und gib eine freundliche Nachricht aus.“
Beispiel:
try:
zahl = int(input("Gib eine Zahl ein: "))
except ValueError:
print("⚠️ Das war keine gültige Zahl!")
Anwendung im To-Do-Projekt
Wir schauen uns 3 typische Stellen an:
1. Eingabe: Text statt Zahl
Vorher:
eingabe = input("Welche Nummer ist erledigt? ")
nummer = int(eingabe) # kann abstürzen!
Jetzt:
try:
nummer = int(input("Welche Nummer ist erledigt? "))
except ValueError:
print("⚠️ Bitte gib eine gültige Zahl ein.")
return None
2. Zugriff auf ungültige Position in der Liste
Vorher:
erledigt = aufgaben.pop(nummer)
Jetzt:
try:
erledigt = aufgaben.pop(nummer)
except IndexError:
print("⚠️ Diese Nummer gibt es nicht.")
return None
3. Datei öffnen (machen wir schon seit Teil 7)
try:
with open("aufgaben.txt", "r") as datei:
...
except FileNotFoundError:
aufgaben = []
Beispiel-Funktion mit try/except
def loesche_aufgabe():
if not aufgaben:
print("⚠️ Keine Aufgaben.")
return None
try:
nummer = int(input("Welche Nummer ist erledigt? ")) - 1
erledigt = aufgaben.pop(nummer)
return erledigt
except ValueError:
print("⚠️ Das war keine Zahl.")
except IndexError:
print("⚠️ Diese Nummer gibt es nicht.")
return None
Ziel erreicht: Freundlich statt abstürzen
Egal was der Benutzer eintippt – dein Programm bleibt stabil.
Zusammenfassung
Befehl | Bedeutung |
---|---|
try: | Versuch diesen Block |
except Errorname: | Falls ein bestimmter Fehler passiert |
except: | (Optional) Fang alle Fehler ab |
return None | Kein Ergebnis zurückgeben – funktioniert trotzdem |
Bonus: Fehler-Infos anzeigen
Wenn du sehen willst, was genau schiefging, kannst du das Fehlerobjekt anzeigen:
except ValueError as fehler:
print("Fehler:", fehler)
Oder für alles:
except Exception as fehler:
print("Etwas ist schiefgelaufen:", fehler)
🎉 Glückwunsch!
Du hast jetzt gelernt, wie du:
✅ Fehler vermeidest, bevor sie passieren
✅ Fehler abfängst, wenn sie doch passieren
✅ Dein Programm robust und benutzerfreundlich machst
Das ist ein riesiger Schritt in Richtung „echte Software“!
Schreibe einen Kommentar