Alle gefundenen Ausnahmen die der User auslösen kann werden gecatcht.

master
nikow 2023-01-07 18:38:03 +01:00
parent 32e22a1b48
commit b8de76edc5
3 changed files with 79 additions and 39 deletions

View File

@ -7,7 +7,7 @@ import tpe.exceptions.roboter.exceptions.RobotException;
public class RobotFactory { public class RobotFactory {
private String name; private String name;
private Roboter pris = Nexus6.getInstance(); private Roboter pris = Nexus6.getInstance();
private HashMap <Integer, Roboter> roboterLager = new HashMap<>(); private static HashMap <Integer, Roboter> roboterLager = new HashMap<>();
public RobotFactory (String name) { public RobotFactory (String name) {
this.name = name; this.name = name;
@ -86,4 +86,8 @@ public RobotFactory (String name) {
public int getRoboterLagerSize() { public int getRoboterLagerSize() {
return roboterLager.size(); return roboterLager.size();
} }
public static boolean istDieserRoboterDa(int id) {
return roboterLager.containsKey(id);
}
} }

View File

@ -53,4 +53,9 @@ public class Factorysystem {
public String roboterDaten (int id) { public String roboterDaten (int id) {
return robotFactory.datenDesRoboters(id); return robotFactory.datenDesRoboters(id);
} }
public static boolean istDieserRoboterDa(int id) {
boolean istDa = RobotFactory.istDieserRoboterDa(id);
return istDa;
}
} }

View File

@ -18,7 +18,7 @@ public class Factory {
} }
private void hauptmenü() throws RobotException { private void hauptmenü() throws RobotException {
int input = 0;
mainloop: while (true) { mainloop: while (true) {
System.out.println(); System.out.println();
System.out.println("========"); System.out.println("========");
@ -28,9 +28,16 @@ public class Factory {
System.out.println("9 -> Beenden"); System.out.println("9 -> Beenden");
System.out.println(); System.out.println();
while (true) {
System.out.println("> "); System.out.println("> ");
int input = Integer.parseInt(sc.nextLine()); try {
input = Integer.parseInt(sc.nextLine());
System.out.println(); System.out.println();
break;
} catch (Exception e) {
System.out.println("Bitte eine passende Zahl eingeben");
}
}
switch (input) { switch (input) {
case 1: case 1:
@ -47,6 +54,7 @@ public class Factory {
} }
System.out.println("Programm beendet!");
} }
private void roboterBauen() { private void roboterBauen() {
@ -56,7 +64,8 @@ public class Factory {
try { try {
System.out.println("Welchen Robotertyp möchten Sie haben?(R2D2(1) oder C3PO (2)"); System.out.println("Welchen Robotertyp möchten Sie haben?(R2D2(1) oder C3PO (2)");
auswahl = Integer.parseInt(sc.nextLine()); auswahl = Integer.parseInt(sc.nextLine());
if (auswahl == 1 || auswahl == 2) break; if (auswahl == 1 || auswahl == 2)
break;
} catch (Exception e) { } catch (Exception e) {
System.out.println("Bitte 1 oder 2 eingeben"); System.out.println("Bitte 1 oder 2 eingeben");
} }
@ -65,7 +74,8 @@ public class Factory {
while (true) { while (true) {
System.out.println("Wie wollen Sie ihren Roboter nennen?"); System.out.println("Wie wollen Sie ihren Roboter nennen?");
name = sc.nextLine(); name = sc.nextLine();
if (!name.isBlank())break; if (!name.isBlank())
break;
} }
int seriennummer = factorysystem.roboterAnlegen(name, auswahl); int seriennummer = factorysystem.roboterAnlegen(name, auswahl);
@ -74,8 +84,21 @@ public class Factory {
} }
private void roboterAuswählen() throws RobotException { private void roboterAuswählen() throws RobotException {
int id;
while (true) {
try {
System.out.println("Geben Sie bitte die Seriennummer ein: "); System.out.println("Geben Sie bitte die Seriennummer ein: ");
int id = Integer.parseInt(sc.nextLine()); id = Integer.parseInt(sc.nextLine());
if (istDieserRoboterDa(id)) {
break;
} else {
System.out.println("Dieser Roboter wurde nicht gefunden");
return;
}
} catch (Exception e) {
System.out.println("Bitte eine Nummer eingeben");
}
}
loop: while (true) { loop: while (true) {
System.out.println("Wählen Sie eine Aktion aus!"); System.out.println("Wählen Sie eine Aktion aus!");
@ -86,8 +109,8 @@ public class Factory {
System.out.println("5 -> Daten abrufen"); System.out.println("5 -> Daten abrufen");
System.out.println("9 -> Zurück ins Hauptmenü"); System.out.println("9 -> Zurück ins Hauptmenü");
System.out.print("> "); System.out.print("> ");
try {
int input = Integer.parseInt(sc.nextLine()); int input = Integer.parseInt(sc.nextLine());
switch (input) { switch (input) {
case 1: case 1:
zustandAbfragen(id); zustandAbfragen(id);
@ -101,13 +124,22 @@ public class Factory {
case 4: case 4:
letzteFehlermeldung(id); letzteFehlermeldung(id);
break; break;
case 5: datenAbruf(id); break; case 5:
datenAbruf(id);
break;
case 9: case 9:
break loop; break loop;
} }
} catch (Exception e) {
System.out.println("Bitte eine passende Zahl eingeben.");
} }
} }
}
private boolean istDieserRoboterDa(int id) {
boolean istDa = Factorysystem.istDieserRoboterDa(id);
return istDa;
}
private void zustandAbfragen(int id) { private void zustandAbfragen(int id) {
boolean zustand = factorysystem.zustandRoboter(id); boolean zustand = factorysystem.zustandRoboter(id);
@ -159,7 +191,6 @@ public class Factory {
// e.printStackTrace(); // e.printStackTrace();
} }
} }
} }