đŻ 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/exceptgezielt 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