Mein Programm soll mittels Scanner-Klasse eine natürliche Zahl über die Konsole einlesen, welche kleiner als 8 sein soll.
Falls ein String eingegeben wird, soll die (eigens erstellte Exception-Klasse) "ExceptionKlasse_keinInteger" geschmissen werden.
Falls eine Zahl größer 7 eingegeben wird, soll die (eigens erstellte Exception-Klasse) "ExceptionKlasse_groesser7" geschmissen werden.
Das Programm wird in der main-Methode gestartet und soll solange mittels while-Schleife durchlaufen werden, bis über die Konsole eine Zahl kleiner 8 eingegeben wurde.
Falls ich einen String eingebe wird das Programm ausgeführt so wie soll.
Falls ich eine Zahl kleiner 8 eingebe wird das Programm beendet, so wie es sein sollte:
Problem:
Falls eine Zahl größer 7 eingegeben wird, wird die gewollte Exception (ExceptionKlasse_groesser7) geschmissen und es wird auch ein Teil der Methode ausgeführt, aber ich erhalte immer die Fehlermeldung: "NoSuchElementException":
Wie kann ich dieses Problem lösen?
Falls ein String eingegeben wird, soll die (eigens erstellte Exception-Klasse) "ExceptionKlasse_keinInteger" geschmissen werden.
Falls eine Zahl größer 7 eingegeben wird, soll die (eigens erstellte Exception-Klasse) "ExceptionKlasse_groesser7" geschmissen werden.
Das Programm wird in der main-Methode gestartet und soll solange mittels while-Schleife durchlaufen werden, bis über die Konsole eine Zahl kleiner 8 eingegeben wurde.
Java:
import java.util.InputMismatchException;
import java.util.Scanner;
public class Rechner {
public static void methode() throws ExceptionKlasse_groesser7, ExceptionKlasse_keinInteger {
System.out.println("Bitte eine natürliche Zahl kleiner 8 eigeben: ");
int x;
try {
Scanner scanner = new Scanner(System.in);
x = scanner.nextInt();
scanner.close();
}
catch(InputMismatchException c) {
throw new ExceptionKlasse_keinInteger();
}
if(x>7) {
throw new ExceptionKlasse_groesser7();
}
System.out.println("Eingegebene Zahl: " + x);
}
public static void main(String[] args) {
boolean schleifenvariable = true;
while(schleifenvariable) {
try {
methode();
schleifenvariable = false;
}
catch(ExceptionKlasse_keinInteger e) {
System.out.println(e.getMessage());
}
catch(ExceptionKlasse_groesser7 b) {
System.out.println(b.getMessage());
}
}
}
}
Falls ich eine Zahl kleiner 8 eingebe wird das Programm beendet, so wie es sein sollte:
Problem:
Falls eine Zahl größer 7 eingegeben wird, wird die gewollte Exception (ExceptionKlasse_groesser7) geschmissen und es wird auch ein Teil der Methode ausgeführt, aber ich erhalte immer die Fehlermeldung: "NoSuchElementException":
Wie kann ich dieses Problem lösen?
Zuletzt bearbeitet: