Debugging
Debugging ist der Prozess, Fehler (Bugs) im Code zu finden und zu beheben.
Es ist eine der wichtigsten Fähigkeiten eines Entwicklers, systematisch Probleme zu analysieren und Methoden zur Fehlerbehebung anzuwenden.
Was ist Debugging?
- Fehler finden im Programmcode
- Ursache identifizieren warum etwas nicht funktioniert
- Fehler beheben und testen
DEBUGGING-PROZESS
┌──────────────────────┐
│ 1. PROBLEM ERKENNEN │
│ "Es funktioniert │
│ nicht!" │
└──────────────────────┘
↓
┌──────────────────────┐
│ 2. REPRODUZIEREN │
│ Fehler nachstellen │
└──────────────────────┘
↓
┌──────────────────────┐
│ 3. URSACHE FINDEN │
│ Wo ist der Fehler? │
└──────────────────────┘
↓
┌──────────────────────┐
│ 4. FEHLER BEHEBEN │
│ Code korrigieren │
└──────────────────────┘
↓
┌──────────────────────┐
│ 5. TESTEN │
│ Funktioniert es │
│ jetzt? │
└──────────────────────┘
Debugging-Methoden
System.out.println()verwenden- Werte ausgeben und prüfen
2. Breakpoint-Debugging
- Programm an bestimmter Stelle stoppen
- Variablen inspizieren
3. Logging
- Logs schreiben
- Fehler nachvollziehen
4. Code-Review
- Code Zeile für Zeile durchgehen
- Logikfehler finden
Praktisches Beispiel
Fehler im Code:
int result = 10 / 0; // Bug: Division durch Null
System.out.println(result); // Crash!
Problem: Programm stürzt ab mit ArithmeticException (Exception)
Debugging-Schritte:
-
Problem identifizieren
→ Programm crasht bei Division -
Ursache finden
→ Division durch Null in Zeile 1 -
Fehler beheben - Prüfung einbauen mit Try-Catch:
int divisor = 0;
if (divisor != 0) {
int result = 10 / divisor;
System.out.println(result);
} else {
System.out.println("Fehler: Division durch Null!");
}
DEBUGGING-TOOLS
┌─────────────────────────────────┐
│ IDE-DEBUGGER │
│ (z.B. IntelliJ, Eclipse, VS) │
└─────────────────────────────────┘
│
┌─────┴─────┐
▼ ▼
┌─────────┐ ┌─────────┐
│Breakpoint│ │ Watch │
│ setzen │ │Variablen│
└─────────┘ └─────────┘
│ │
▼ ▼
┌─────────┐ ┌─────────┐
│ Step │ │ Stack │
│ Through │ │ Trace │
└─────────┘ └─────────┘
Debugging-Tipps für die Prüfung
Systematisch vorgehen:
- Fehler reproduzieren (kann ich ihn wiederholen?)
- Hypothese aufstellen (was könnte falsch sein?)
- Testen (stimmt meine Vermutung?)
- Beheben (Problem lösen)
- Verifizieren (funktioniert es jetzt?)
Häufige Fehlerquellen
- Syntax-Fehler: Tippfehler, fehlende Klammern
- Logik-Fehler: Falscher Algorithmus
- Laufzeit-Fehler: Division durch 0, Null-Pointer
- Grenzfälle: Leere Arrays, negative Zahlen