- 1 Abschnitt
- 15 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
- Python Grundkurs16
- 0.1Was ist Python?
- 0.2Installation & Einrichtung
- 0.3Erstes Python Programm: Hallo Welt!
- 0.4Grundlegende Syntax
- 0.5Variablen und Datentypen
- 0.6Kontrollstrukturen
- 0.7Funktionen
- 0.8Module & Pakete
- 0.9Fehlerbehandlung
- 0.10Dateiverarbeitung
- 0.11Klassen und Objekte
- 0.12Vererbung und Polymorphismus
- 0.13Bibliotheken und Frameworks
- 0.14Python9 Fragen
- 0.15Aufgaben
- 0.16Lösungen
Fehlerbehandlung
Fehlerbehandlung ist ein wichtiger Aspekt der Programmierung, der sicherstellt, dass dein Programm auch bei unerwarteten Situationen stabil bleibt und angemessen reagiert. Python bietet ein robustes System zur Behandlung von Ausnahmen (Exceptions), das es dir ermöglicht, Fehler abzufangen und darauf zu reagieren, ohne dass dein Programm abstürzt.
7.1. Ausnahmebehandlung mit try, except, else und finally
In Python kannst du Ausnahmen mit den Schlüsselwörtern try, except, else und finally behandeln.
Syntax:
try:
# Codeblock, der ausgeführt wird
# Möglicherweise tritt hier eine Ausnahme auf
except FehlerTyp:
# Codeblock, der ausgeführt wird, wenn der angegebene Fehler auftritt
else:
# Codeblock, der ausgeführt wird, wenn keine Ausnahme auftritt
finally:
# Codeblock, der immer ausgeführt wird, unabhängig davon, ob eine Ausnahme aufgetreten ist oder nicht
Beispiel: Einfache Ausnahmebehandlung
try:
zahl = int(input("Gib eine Zahl ein: "))
ergebnis = 10 / zahl
print(f"Das Ergebnis ist {ergebnis}")
except ZeroDivisionError:
print("Fehler: Division durch Null ist nicht erlaubt.")
except ValueError:
print("Fehler: Ungültige Eingabe. Bitte eine Zahl eingeben.")
else:
print("Berechnung erfolgreich abgeschlossen.")
finally:
print("Programm beendet.")
7.2. Eigene Ausnahmen definieren
Du kannst auch eigene Ausnahmen definieren, indem du eine neue Ausnahmeklasse erstellst, die von der eingebauten Klasse Exception erbt.
Beispiel: Eigene Ausnahme definieren
class UngueltigeEingabeError(Exception):
"""Ausnahme, die ausgelöst wird, wenn die Eingabe ungültig ist."""
pass
def prüfe_eingabe(zahl):
if zahl < 0:
raise UngueltigeEingabeError("Die Zahl darf nicht negativ sein.")
return zahl
try:
zahl = int(input("Gib eine positive Zahl ein: "))
prüfe_eingabe(zahl)
print("Die Eingabe ist gültig.")
except UngueltigeEingabeError as e:
print(f"Fehler: {e}")
except ValueError:
print("Fehler: Ungültige Eingabe. Bitte eine Zahl eingeben.")
7.3. Verschachtelte Ausnahmebehandlung
Du kannst auch verschachtelte try-Blöcke verwenden, um komplexere Fehlerbehandlungen durchzuführen.
Beispiel: Verschachtelte Ausnahmebehandlung
try:
zahl = int(input("Gib eine Zahl ein: "))
try:
ergebnis = 10 / zahl
print(f"Das Ergebnis ist {ergebnis}")
except ZeroDivisionError:
print("Fehler: Division durch Null ist nicht erlaubt.")
except ValueError:
print("Fehler: Ungültige Eingabe. Bitte eine Zahl eingeben.")
7.4. Aufheben von Ausnahmen
Manchmal möchtest du eine Ausnahme innerhalb eines try-Blocks abfangen und dann erneut auslösen, um sie an eine höhere Ebene weiterzugeben.
Beispiel: Ausnahme erneut auslösen
def berechne_quotient(a, b):
try:
ergebnis = a / b
except ZeroDivisionError as e:
print("Fehler in der Funktion 'berechne_quotient': Division durch Null")
raise e
return ergebnis
try:
berechne_quotient(10, 0)
except ZeroDivisionError:
print("Fehler im Hauptprogramm: Division durch Null")
