Debugging – Fehler finden und verstehen
Ziele
- Du verstehst, was Debugging ist und warum es wichtig ist.
- Du kannst zwischen Debugging und einfachem Logging unterscheiden.
- Du kennst verschiedene Wege, Fehler im Code zu analysieren.
Wieso ist Debuggen wichtig?
Es gibt viele Gründe, warum Programme Fehler enthalten können – z. B. falsche Annahmen, vergessene Sonderfälle oder unerwartete Eingaben. Typische Fehler sind:
- falsche Berechnungen
NullPointerException
- Endlosschleifen
- falsche Bedingungen (
if
falsch herum) - Methoden werden nicht aufgerufen oder liefern falsche Werte zurück
Mittels debuggen kannst du den Fehler einkreisen und dann jede Anweisung Schritt für Schritt ausführen und prüfen, ob die Anweisung wie erwartet Funktioniert.
Was bringt Debuggen?
- Fehler gezielt finden, indem man den Code Schritt für Schritt durchläuft
- Werte von Variablen und den Kontrollfluss beobachten
- Besseres Verständnis für fremden oder komplexen Code
Debugging vs. Logging
Viele Anfänger schreiben System.out.println(...)
, um zu sehen, was im Code passiert. Das funktioniert, hat aber Nachteile:
- Konsolenausgaben verlangsamen das Programm
- Der Code wird unübersichtlicher
- Logs werden oft vergessen zu entfernen und gelangen so in Git oder sogar auf den Server

System.out.println
, aber ohne den Code zu verändern.Wie kann man debuggen – auch ohne Tool?
- Code genau lesen – viele Fehler erkennt man durch genaues Nachdenken.
- Tests schreiben – zeigen sofort, wenn etwas nicht stimmt.
- Logs schreiben – gezielt und kontrolliert.
- Assertions verwenden – helfen, Annahmen zu überprüfen.
Debugging vs. Fehlersuche im Feld
Beim Entwickeln am eigenen Rechner kann man den Code komfortabel debuggen – z. B. mit einem Debugger wie in IntelliJ. Im Produktivbetrieb (im Feld) ist das aber nicht möglich:
- Man kann keine Breakpoints setzen, weil das Programm bereits läuft.
- Man hat keinen Zugriff auf eine Entwicklungsumgebung.
- Das Verhalten darf nicht unterbrochen oder verändert werden.
Logging im Feld
Deshalb ist Logging im Feld die wichtigste Methode, um Fehler zu finden:
- Man loggt gezielt Informationen (z. B. Zustände, Fehlermeldungen, Eingabewerte)
- Diese Logs werden in eine Datei oder Datenbank geschrieben und später analysiert
- Logging sollte sparsam, aber gezielt eingesetzt werden


Für die Java Grundlagen reichen vorderhand die Debug-Möglichkeiten aus, welche IntelliJ bietet. Das Logging werden wir erst in einem späteren Modul einsetzen.

Nächste Schritte
Wenn du Java mit IntelliJ verwendest, solltest du das integrierte Debugging-Tool kennenlernen: