Zum Inhalt springen
Lektion 17 von 26 10 Min. Mittel Zur Übung Mit Codebeispiel

Debugging

Debugging ist keine Niederlage, sondern die normale Art, Programme zu verstehen. Du lernst, Fehlermeldungen zu lesen und Fehler systematisch einzugrenzen.

Ansicht

01

Verstehen

Lies die Kernidee und das Beispiel.

02

Prüfen

Beantworte die Aktiv-Checks.

03

Anwenden

Setze die Transferaufgabe um.

Mini-Erfolg

Du hast einen Fehler gefunden, indem du einen Breakpoint gesetzt und Werte beobachtet hast.

Warum das wichtig ist: Debugging ist keine Niederlage, sondern die normale Art, Programme zu verstehen.

Vorher hilfreich

Lerninhalt

Verstehen & anwenden

1

Fehlermeldungen lesen

Ein Compilerfehler nennt Datei, Zeile und oft eine recht klare Ursache.

Lies von oben nach unten: Die erste Zeile ist meist die wichtigste.

Ein Stack Trace zeigt, wo der Fehler auftrat und über welche Methoden der Code dorthin kam. Die oberste Zeile ist der Ort des Geschehens.

CompilerfehlerStack TraceException
Typischer Laufzeitfehler
int[] zahlen = {3, 8, 15};
int summe = 0;

for (int i = 0; i <= zahlen.length; i++) { // Fehler: <=
    summe += zahlen[i];
}

// ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
2

Breakpoints und Werte beobachten

Ein Breakpoint hält das Programm an einer Stelle an.

Danach kannst du Variablen ansehen und Schritt für Schritt weitergehen.

Step Over führt die nächste Zeile aus, Step Into springt in eine Methode hinein. Beides ist Übung, keine Magie.

BreakpointDebuggerStep Over
Beobachtungsauftrag
int summe = 0;
for (int i = 1; i <= 3; i++) {
    summe += i;
}
System.out.println(summe);

// Setze einen Breakpoint in die Schleife.
// Notiere für jede Runde: i und summe.
3

Systematisch eingrenzen

Reproduziere den Fehler zuerst mit den kleinsten möglichen Eingaben.

Dann ändere nur eine Sache pro Versuch.

Wenn du nicht weiterkommst, erkläre die betroffene Methode laut oder schreibe einen Mini-Test. Oft fällt dabei die Annahme auf, die falsch ist.

reproduzierenLogikfehlerMini-Test
Drei-Fragen-Check
// 1. Was sollte passieren?
// 2. Was passiert tatsächlich?
// 3. Welche Annahme könnte falsch sein?

// Erst danach Code ändern.

Vertiefung

Debugging ist ein Experiment

Ein Debugger zeigt dir den tatsächlichen Zustand, nicht den vermuteten. Setze einen Breakpoint vor der Stelle, an der du einen falschen Wert erwartest, und arbeite dich rückwärts.

Häufige Fehler sind Off-by-one, falsche Vergleiche, null und Seiteneffekte. Wenn du den Fehler nicht reproduzieren kannst, hast du ihn noch nicht verstanden.

Drei Fragen vor jeder Änderung
// 1. Was sollte passieren?
// 2. Was passiert tatsächlich?
// 3. Welche Annahme könnte falsch sein?

int[] werte = {3, 8, 15};
int summe = 0;
for (int i = 0; i < werte.length; i++) {
    summe += werte[i];
}
System.out.println(summe);

Merksatz: Erst beobachten, dann ändern. Ein Breakpoint oder eine gezielte Ausgabe ist besser als blindes Herumprobieren.

Übungsaufgabe

Drei Bugs finden

Repariere ein Programm mit drei Fehlern: einem Compilerfehler, einem Off-by-one und einem Logikfehler.

Das soll dein Programm können

  • Den Compilerfehler finden und beheben
  • Die Schleifengrenze korrigieren
  • Die Berechnung des Durchschnitts reparieren
  • Das korrigierte Programm ausgeben

Schreibe den Code hier oder in deiner IDE und vergleiche ihn dann mit der Lösung.

Dein Code wird automatisch auf diesem Gerät gespeichert.

Hinweis anzeigen

Achte auf das Semikolon, die Schleifengrenze und den Typ der Division.

Lösung anzeigen
Drei Bugs finden.java
public class Bugs {
    public static void main(String[] args) {
        int[] werte = {10, 20, 30};
        int summe = 0;
        for (int i = 0; i < werte.length; i++) {
            summe += werte[i];
        }
        double schnitt = (double) summe / werte.length;
        System.out.println(schnitt); // 20.0
    }
}

Warum funktioniert das?

Drei typische Fehler in einem Programm: fehlendes Semikolon, <= statt < und Ganzzahl-Division. Genau diese Kombination begegnet dir in echten Projekten oft.

Aktiv-Check

Teste dein Verständnis

1/6

Erkennen: Welcher Abschnitt passt?

Welcher Abschnitt passt zu diesen Begriffen?

CompilerfehlerStack TraceException
Tipp: Erst erinnern, dann prüfen. Fehler sind Teil des Lernens.

Spaßprojekt

Drei Fehler, ein Programm

Nimm ein absichtlich kaputtes Miniprogramm und repariere nacheinander einen Compilerfehler, einen Laufzeitfehler und einen Logikfehler.

Selbstcheck

Kann ich das schon?

Hake ab, was du wirklich erklären oder selbst bauen könntest.

0 von 3 geschafft

Fortschritt

Bereit zum Abschließen?

Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.

</> Learn-Program © 2026 · Lizenziert unter CC BY-NC-SA 4.0

Rechtliches & Lizenz