Direkt zum Hauptinhalt springen
eLearner.app
Modul 5 · Lektion 1 von 29/14 im Kurs~12 min
Lektionen des Moduls (1/2)

Die try-catch-Blöcke

In Java werden Fehler, die während der Ausführung eines Programms auftreten, über Exceptions (Ausnahmen) verwaltet. Die Ausnahmebehandlung ermöglicht es, anomale Situationen abzufangen und zu verhindern, dass das Programm abrupt beendet wird.

Die try-catch-Struktur

Um eine potenzielle Ausnahme zu behandeln, schließen wir den riskanten Code in einen try-Block ein. Wenn innerhalb von try ein Fehler auftritt, unterbricht die JVM die Ausführung des Blocks und sucht nach einem entsprechenden catch-Block, um die Ausnahme zu behandeln.

Code
try {
    int result = 10 / 0; // Genera un'eccezione ArithmeticException
    System.out.println("Questo non verrà stampato");
} catch (ArithmeticException e) {
    System.out.println("Si è verificato un errore aritmetico: " + e.getMessage());
}

Der finally-Block

Der finally-Block ist optional und wird immer ausgeführt, unabhängig davon, ob eine Ausnahme ausgelöst wurde oder nicht. Er eignet sich ideal zum Freigeben von Ressourcen oder zum Durchführen von Bereinigungsarbeiten.

Code
try {
    System.out.println("Esecuzione logica");
} catch (Exception e) {
    System.out.println("Errore");
} finally {
    System.out.println("Questo blocco viene sempre eseguito");
}

Ausnahmen auslösen: throw

Wir können eine Ausnahme absichtlich mit dem Schlüsselwort throw auslösen, gefolgt von einer neuen Instanz einer Ausnahmeklasse.

Code
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Il punteggio deve essere compreso tra 0 e 100");
    }
}

Probiere es aus

Übung#java.m5.l1.e1
Versuche: 0Wird geladen…

Vervollständigen Sie den Code, indem Sie einen try-catch-Block einfügen, um eine mögliche ArithmeticException abzufangen, die sich aus der Division a / b ergibt. Geben Sie im Fehlerfall 'Error: division by zero' aus.

Editor wird geladen…
Hinweis anzeigen

Fügen Sie die Divisionsoperation in den `try`-Block ein und fangen Sie `ArithmeticException` ab, indem Sie die geforderte Meldung ausgeben.

Lösung nach 3 Versuchen verfügbar

Übung#java.m5.l1.e2
Versuche: 0Wird geladen…

Vervollständigen Sie den Code, indem Sie einen try-catch-finally-Block implementieren. Versuchen Sie im try-Block, den String str mit Integer.parseInt in eine Ganzzahl zu konvertieren. Fangen Sie im catch-Block die NumberFormatException ab und geben Sie 'Invalid number' aus. Geben Sie im finally-Block 'Finally' aus.

Editor wird geladen…
Hinweis anzeigen

Schreiben Sie die Struktur `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.

Lösung nach 3 Versuchen verfügbar

Übung#java.m5.l1.e3
Versuche: 0Wird geladen…

Vervollständigen Sie die Methode checkAge, indem Sie eine IllegalArgumentException mit der Meldung 'Underage' auslösen, wenn das angegebene Alter unter 18 Jahren liegt.

Editor wird geladen…
Hinweis anzeigen

Verwenden Sie `if (age < 18)` und das Schlüsselwort `throw new`, um die Ausnahme zu instanziieren und auszulösen.

Lösung nach 3 Versuchen verfügbar