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.
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.
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.
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
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.
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
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.
Hinweis anzeigen
Schreiben Sie die Struktur `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.
Lösung nach 3 Versuchen verfügbar
Vervollständigen Sie die Methode checkAge, indem Sie eine IllegalArgumentException mit der Meldung 'Underage' auslösen, wenn das angegebene Alter unter 18 Jahren liegt.
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