2. Schritt: Exception Handling

Exception Handling (deutsch Ausnahmenbehandlung) behandelt Exceptions (deutsch Ausnahmen) bei der Ausführung eines Computerprogramms, damit das Programmm oder System nicht abstürzt. Eine Exception ist dabei ein vom Programm nicht erwartetes Ereignis.


Exception Handling

Dein Programm führt zwar nun die gewünschten Operationen aus, jedoch kommt es bei der Eingabe von falschen Werten zu Exceptions. Um diese zu verhindern, musst du Exception Handling betreiben.

Dafür musst du dir überlegen, an welchen Stellen die User falschen Input geben können.

Das ist eigentlich bei allen drei Inputs möglich.

Jetzt musst du dir überlegen, welcher Input erlaubt sein muss.

In dem Fall der beiden Zahlen soll es sich um den Datentyp double handeln, also soll dein Programm bei jedem anderen Datentyp eine Fehlermeldung werfen.

int ist als Input in Ordnung, hier wird automatisch in double umgerechnet.

Ein Exception-Handler besteht immer aus einem try- und einem catch-Block. Der try-Block enthält dabei den Programm-Code, bei dem es zu Exceptions kommen kann. Der catch-Block fängt diese auf, indem er vorgibt, was im Falle der jeweiligen Exception passiert.

In diesem Fall muss also die Zeile firstNumber = userInput.nextDouble(); bzw. secondNumber = userInput.nextDouble(); in den try-Block.

Du kannst in deinem catch-Block nun eine Nachricht an die User ausgeben, dass sie eine falsche Eingabe getätigt haben. Außerdem wird mithilfe des Befehls System.exit(-1); das Programm beendet. In den Klammern des catch-Blocks übergibst du noch die Art der Exception, hier ist es eine InputMismatchException. Diese nennst du einfach e.

Diese Exception musst du zuvor jedoch noch aus dem util-Paket mit dem Befehl import java.util.InputMismatchException; importieren:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Jetzt fehlt dir noch die Exception, wenn die User durch 0 teilen wollen.

Da hier also die Zeile System.out.println(firstNumber / secondNumber); betroffen ist, wird sie gemeinsam mit der System.out.println("Result:");-Zeile in den try-Block geschrieben.

Den Fall, dass 0.0 eingegeben wird, überprüfst du mit einer if-Abfrage. Wenn die Bedingung secondNumber == 0.0 true ist, dann wird eine ArithmeticException geworfen.

Im catch-Block wird wieder eine Nachricht an die User ausgegeben, dass sie nicht durch 0 teilen können:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Den Fall, dass die User bei dem Operator einen falschen Input eingeben, hast du bereits mit deinem switch-Block abgefangen.

Daher hast du jetzt alle Funktionen erfolgreich implementiert und alle Exceptions behandelt! Probier gerne verschiedene Zahlen und Operationen aus. Achte darauf, dass du deine Kommazahlen in der Konsole mit einem Komma eingibst, damit sie als double erkannt werden.

No items found.

simpleclub ist am besten in der App.

Mit unserer App hast du immer und überall Zugriff auf: Lernvideos, Erklärungen mit interaktiven Animationen, Übungsaufgaben, Karteikarten, individuelle Lernpläne uvm.

Jetzt simpleclub Azubi holen!

Mit simpleclub Azubi bekommst du Vollzugang zur App: Wir bereiten dich in deiner Ausbildung optimal auf deine Prüfungen in der Berufsschule vor. Von Ausbilder*innen empfohlen.

Jetzt simpleclub Azubi holen