- 1 Section
- 15 Lessons
- unbegrenzt
- Python Grundkurs16
- 1.1Was ist Python?
- 1.2Installation & Einrichtung
- 1.3Erstes Python Programm: Hallo Welt!
- 1.4Grundlegende Syntax
- 1.5Variablen und Datentypen
- 1.6Kontrollstrukturen
- 1.7Funktionen
- 1.8Module & Pakete
- 1.9Fehlerbehandlung
- 1.10Dateiverarbeitung
- 1.11Klassen und Objekte
- 1.12Vererbung und Polymorphismus
- 1.13Bibliotheken und Frameworks
- 1.14Aufgaben
- 1.15Lösungen
- 1.16Python11 Questions
Fehlerbehandlung
1. Warum Fehlerbehandlung wichtig ist
Fehler passieren ständig – besonders in der Praxis.
Ein Benutzer gibt falsche Daten ein, eine Datei existiert nicht,
oder eine Internetverbindung bricht ab.
Ohne Fehlerbehandlung stürzt dein Programm sofort ab,
sobald etwas Unerwartetes passiert.
Beispiel:
zahl = int(input("Gib eine Zahl ein: "))
print(10 / zahl)
Wenn jemand 0 eingibt:
ZeroDivisionError: division by zero
→ Das Programm stoppt – keine Chance, den Fehler „freundlich“ abzufangen.
2. Der try-except-Block
Mit einem try-Block kannst du Code „testen“.
Wenn dort ein Fehler auftritt, wird der Rest übersprungen
und stattdessen der except-Block ausgeführt.
Beispiel:
try:
zahl = int(input("Gib eine Zahl ein: "))
print(10 / zahl)
except:
print("Ein Fehler ist aufgetreten!")
Egal, ob der Benutzer 0 eingibt oder Text – das Programm läuft weiter.
Aber besser ist es, gezielt nach Fehlertypen zu unterscheiden.
3. Gezielte Fehlerbehandlung
| Fehlertyp | Wann tritt er auf | Beispiel |
|---|---|---|
ValueError | Falsche Eingabe | int("abc") |
ZeroDivisionError | Division durch 0 | 10 / 0 |
FileNotFoundError | Datei fehlt | open("abc.txt") |
TypeError | Falscher Typ | "5" + 2 |
Beispiel mit gezielter Behandlung:
try:
zahl = int(input("Gib eine Zahl ein: "))
print(10 / zahl)
except ValueError:
print("Bitte gib eine ganze Zahl ein!")
except ZeroDivisionError:
print("Division durch 0 ist nicht erlaubt!")
4. else und finally
else: wird nur ausgeführt, wenn kein Fehler auftrittfinally: wird immer ausgeführt – egal ob Fehler oder nicht
Beispiel:
try:
datei = open("daten.txt", "r")
inhalt = datei.read()
except FileNotFoundError:
print("Datei nicht gefunden.")
else:
print("Datei wurde erfolgreich gelesen.")
finally:
print("Vorgang abgeschlossen.")
Ausgabe (wenn Datei fehlt):
Datei nicht gefunden.
Vorgang abgeschlossen.
5. Eigene Fehler werfen
Manchmal möchtest du Fehler selbst auslösen,
wenn z. B. eine Bedingung im Code nicht erfüllt ist.
def teile(a, b):
if b == 0:
raise ValueError("Division durch 0 ist nicht erlaubt!")
return a / b
try:
print(teile(10, 0))
except ValueError as fehler:
print("Fehler:", fehler)
Ausgabe:
Fehler: Division durch 0 ist nicht erlaubt!
Programm mit und ohne Fehlerbehandlung
Klicke auf eine Variante, um zu sehen, was passiert.
