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();
System.out.println("> "); while (true) {
int input = Integer.parseInt(sc.nextLine()); System.out.println("> ");
System.out.println(); try {
input = Integer.parseInt(sc.nextLine());
System.out.println();
break;
} catch (Exception e) {
System.out.println("Bitte eine passende Zahl eingeben");
}
}
switch (input) { switch (input) {
case 1: case 1:
@ -47,25 +54,28 @@ public class Factory {
} }
System.out.println("Programm beendet!");
} }
private void roboterBauen() { private void roboterBauen() {
int auswahl; int auswahl;
String name; String name;
while(true) { while (true) {
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)
} catch(Exception e) { break;
} catch (Exception e) {
System.out.println("Bitte 1 oder 2 eingeben"); System.out.println("Bitte 1 oder 2 eingeben");
} }
} }
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 {
System.out.println("Geben Sie bitte die Seriennummer ein: "); int id;
int id = Integer.parseInt(sc.nextLine()); while (true) {
try {
System.out.println("Geben Sie bitte die Seriennummer ein: ");
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,29 +109,38 @@ 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("> ");
int input = Integer.parseInt(sc.nextLine()); try {
int input = Integer.parseInt(sc.nextLine());
switch (input) { switch (input) {
case 1: case 1:
zustandAbfragen(id); zustandAbfragen(id);
break; break;
case 2: case 2:
schalterBetätigen(id); schalterBetätigen(id);
break; break;
case 3: case 3:
sprechen(id); sprechen(id);
break; break;
case 4: case 4:
letzteFehlermeldung(id); letzteFehlermeldung(id);
break; break;
case 5: datenAbruf(id); break; case 5:
case 9: datenAbruf(id);
break loop; break;
case 9:
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);
if (zustand == true) { if (zustand == true) {
@ -156,10 +188,9 @@ public class Factory {
System.out.println("Ausgabe: " + ausgabe); System.out.println("Ausgabe: " + ausgabe);
} catch (RobotException e) { } catch (RobotException e) {
System.out.println("Fehler! Bitte den letzten Fehler auslesen!"); System.out.println("Fehler! Bitte den letzten Fehler auslesen!");
//e.printStackTrace(); // e.printStackTrace();
} }
} }
} }
@ -167,7 +198,7 @@ public class Factory {
} }
private void letzteFehlermeldung(int id) { private void letzteFehlermeldung(int id) {
System.out.println (factorysystem.fehlerAuslesen(id)); System.out.println(factorysystem.fehlerAuslesen(id));
} }