- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel) - Kurswechsler Dropdown mit Direktnavigation - Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage - Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets - Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor - Saubere Bereinigung redundanter statischer Legacy-Sidebars |
||
|---|---|---|
| .. | ||
| aufgabe.py | ||
| index.html | ||
| musterloesung.py | ||
| README.md | ||
| test_aufgabe.py | ||
Kapitel 12: Exceptions & Fehlerbehandlung 🛡️🛑
In diesem Kapitel lernst du, wie du deine Programme vor unkontrollierten Abstürzen schützt und saubere, selbsterklärende Fehlermeldungen mit benutzerdefinierten Exceptions wirfst.
🎯 Was du lernst
- Die Notbremse im Code (
raise): Wenn eine Funktion ungültige Daten erhält (z.B. negativer Betrag), wirft sie gezielt eine Exception aus. - Sauberes Abfangen (
try / except): Wie du Fehler auffängst, ohne dass das gesamte Programm abstürzt. - Vollständige Kontrollstruktur:
try: Code, der fehlschlagen könnte.except ExceptionTyp as e: Fehler fangen und behandeln.else: Wird nur ausgeführt, wenn kein Fehler aufgetreten ist.finally: Wird immer ausgeführt (z.B. Karte entnehmen, Dateien schließen).
- Eigene Exception-Klassen definieren:
class BankFehler(Exception): """Basis-Fehlerklasse für unsere Bank-App.""" pass class KontoGesperrtError(BankFehler): pass - Praxisbeispiel: Ein robuster Bankkonto- und Geldautomat-Simulator mit PIN-Sicherheit, Kontosperrung nach 3 Fehlversuchen und Deckungsprüfung.
📁 Die Dateien in diesem Ordner
index.html: Die interaktive Lernseite mit visueller Notbremse-Analogie, Flowchart, Codebeispielen und Checkliste.aufgabe.py: Dein Arbeitsblatt zum Implementieren der Exception-Klassen, desBankkontos und der Geldautomat-Funktion.test_aufgabe.py: Automatische Unittest-Suite (python3 test_aufgabe.py).musterloesung.py: Vollständig ausprogrammierte Beispiellösung.
🚀 Schnellstart
# 1. Bearbeite aufgabe.py
# 2. Teste deine Lösung:
python3 test_aufgabe.py