Zum Inhalt springen
Lektion 13 von 26 12 Min. Mittel Zur Übung Mit Codebeispiel

Exceptions

Exceptions melden Fehler zur Laufzeit. try/catch fängt sie ab, statt das Programm abstürzen zu lassen.

Ansicht

01

Verstehen

Lies die Kernidee und das Beispiel.

02

Prüfen

Beantworte die Aktiv-Checks.

03

Anwenden

Setze die Transferaufgabe um.

Mini-Erfolg

Dein Programm fängt eine ungültige Zahl ab, statt abzustürzen.

Warum das wichtig ist: Fehler passieren. Gute Programme verstecken sie nicht, sondern erklären, was schiefgelaufen ist.

Vorher hilfreich

Lerninhalt

Verstehen & anwenden

1

try / catch

Riskanter Code steht im try-Block, die Fehlerbehandlung im catch.

Mehrere catch-Blöcke behandeln unterschiedliche Fehlertypen — vom speziellen zum allgemeinen.

try / catch
Abfangen
try {
    int zahl = Integer.parseInt("abc");
} catch (NumberFormatException e) {
    System.out.println("Keine gültige Zahl: " + e.getMessage());
}
2

finally und Ressourcen

finally läuft immer — ob Fehler oder nicht.

Klassisch fürs Aufräumen.

try-with-resources schließt Ressourcen wie Dateien automatisch.

finallytry-with-resources
Automatisch schliessen
try (var reader = Files.newBufferedReader(pfad)) {
    System.out.println(reader.readLine());
} // reader wird automatisch geschlossen
3

throw und eigene Exceptions

throw löst eine Exception aus, wenn ein Zustand ungültig ist.

Checked Exceptions müssen deklariert oder behandelt werden, unchecked (RuntimeException) nicht.

throwthrows
Validierung
public void setAlter(int alter) {
    if (alter < 0) {
        throw new IllegalArgumentException("Alter darf nicht negativ sein");
    }
    this.alter = alter;
}

Vertiefung

Fehler sind Teil des Vertrags

Checked Exceptions zwingen dich, einen möglichen Fehler zu behandeln. Unchecked Exceptions zeigen Programmierfehler oder ungültige Zustände. Beides hat seinen Platz.

Ein leeres catch ist fast immer falsch. Gute Fehlerbehandlung erklärt, was passiert ist, und lässt den Aufrufer entscheiden, ob er weitermachen kann.

Eigene Exception
class UngueltigesAlterException extends RuntimeException {
    UngueltigesAlterException(String message) { super(message); }
}

void setAlter(int alter) {
    if (alter < 0) throw new UngueltigesAlterException("Alter: " + alter);
    this.alter = alter;
}

Merksatz: Fange nur Fehler, die du wirklich behandeln kannst. Eine eigene Exception macht den fachlichen Grund sichtbar.

Übungsaufgabe

Alterscheck

Lies ein Alter ein und wirf eine IllegalArgumentException, wenn es negativ ist. Fange sie ab und gib eine hilfreiche Meldung aus.

Das soll dein Programm können

  • Methode setAlter mit Validierung
  • try/catch in main
  • Ausgabe des Fehlers mit getMessage()
  • Ein gültiger Aufruf danach

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

Nach dem catch läuft das Programm weiter. Rufe setAlter danach noch einmal mit einem gültigen Wert auf.

Lösung anzeigen
Alterscheck.java
public class Alterscheck {
    public static void main(String[] args) {
        try {
            setAlter(-5);
        } catch (IllegalArgumentException e) {
            System.out.println("Fehler: " + e.getMessage());
        }
        setAlter(25);
        System.out.println("Gültiges Alter gesetzt.");
    }

    static void setAlter(int alter) {
        if (alter < 0) {
            throw new IllegalArgumentException("Alter darf nicht negativ sein: " + alter);
        }
        System.out.println("Alter: " + alter);
    }
}

Warum funktioniert das?

Die Exception unterbricht setAlter sofort. Der catch behandelt genau diesen Fall, danach kann das Programm mit einem gültigen Wert weitermachen.

Aktiv-Check

Teste dein Verständnis

1/6

Erkennen: Welcher Abschnitt passt?

Welcher Abschnitt passt zu diesen Begriffen?

try / catch
Tipp: Erst erinnern, dann prüfen. Fehler sind Teil des Lernens.

Spaßprojekt

Alterscheck

Lies ein Alter ein und wirf eine eigene Exception, wenn es negativ ist. Fange sie auf und gib eine hilfreiche Meldung aus.

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