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 {
private String name;
private Roboter pris = Nexus6.getInstance();
private HashMap <Integer, Roboter> roboterLager = new HashMap<>();
private static HashMap <Integer, Roboter> roboterLager = new HashMap<>();
public RobotFactory (String name) {
this.name = name;
@ -86,4 +86,8 @@ public RobotFactory (String name) {
public int getRoboterLagerSize() {
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) {
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 {
int input = 0;
mainloop: while (true) {
System.out.println();
System.out.println("========");
@ -28,9 +28,16 @@ public class Factory {
System.out.println("9 -> Beenden");
System.out.println();
System.out.println("> ");
int input = Integer.parseInt(sc.nextLine());
System.out.println();
while (true) {
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) {
case 1:
@ -47,35 +54,51 @@ public class Factory {
}
System.out.println("Programm beendet!");
}
private void roboterBauen() {
int auswahl;
String name;
while(true) {
while (true) {
try {
System.out.println("Welchen Robotertyp möchten Sie haben?(R2D2(1) oder C3PO (2)");
auswahl = Integer.parseInt(sc.nextLine());
if (auswahl == 1 || auswahl == 2) break;
} catch(Exception e) {
if (auswahl == 1 || auswahl == 2)
break;
} catch (Exception e) {
System.out.println("Bitte 1 oder 2 eingeben");
}
}
while(true) {
System.out.println("Wie wollen Sie ihren Roboter nennen?");
name = sc.nextLine();
if (!name.isBlank())break;
while (true) {
System.out.println("Wie wollen Sie ihren Roboter nennen?");
name = sc.nextLine();
if (!name.isBlank())
break;
}
int seriennummer = factorysystem.roboterAnlegen(name, auswahl);
System.out.println(name + " mit der Seriennummer: " + seriennummer + " wurde erstellt.");
}
private void roboterAuswählen() throws RobotException {
System.out.println("Geben Sie bitte die Seriennummer ein: ");
int id = Integer.parseInt(sc.nextLine());
int id;
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) {
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("9 -> Zurück ins Hauptmenü");
System.out.print("> ");
int input = Integer.parseInt(sc.nextLine());
switch (input) {
case 1:
zustandAbfragen(id);
break;
case 2:
schalterBetätigen(id);
break;
case 3:
sprechen(id);
break;
case 4:
letzteFehlermeldung(id);
break;
case 5: datenAbruf(id); break;
case 9:
break loop;
try {
int input = Integer.parseInt(sc.nextLine());
switch (input) {
case 1:
zustandAbfragen(id);
break;
case 2:
schalterBetätigen(id);
break;
case 3:
sprechen(id);
break;
case 4:
letzteFehlermeldung(id);
break;
case 5:
datenAbruf(id);
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) {
boolean zustand = factorysystem.zustandRoboter(id);
if (zustand == true) {
@ -156,9 +188,8 @@ public class Factory {
System.out.println("Ausgabe: " + ausgabe);
} catch (RobotException e) {
System.out.println("Fehler! Bitte den letzten Fehler auslesen!");
//e.printStackTrace();
// e.printStackTrace();
}
}
@ -167,10 +198,10 @@ public class Factory {
}
private void letzteFehlermeldung(int id) {
System.out.println (factorysystem.fehlerAuslesen(id));
System.out.println(factorysystem.fehlerAuslesen(id));
}
private void datenAbruf(int id) {
System.out.println(factorysystem.roboterDaten(id));
}