Exceptions RobotMagicValue erweitert und implementiert, getLastException

implementiert
master
Milan Lukic 2023-01-05 16:02:23 +01:00
parent d5070e89cf
commit 5a78ea1429
5 changed files with 96 additions and 49 deletions

View File

@ -1,13 +1,18 @@
package Domäne;
public class C3PO extends Roboter{
import tpe.exceptions.roboter.exceptions.RobotException;
import tpe.exceptions.roboter.exceptions.RobotIllegalStateException;
import tpe.exceptions.roboter.exceptions.RobotMagicValueException;
public class C3PO extends Roboter {
String name;
int id;
static int idZähler = 10000;
RobotType robotType;
RobotException fehler;
C3PO (String name){
super (name);
C3PO(String name) {
super(name);
this.robotType = robotType.C3PO;
this.id = idZähler;
idZähler++;
@ -15,15 +20,21 @@ public class C3PO extends Roboter{
@Override
public int getId() {
// TODO Auto-generated method stub
return 0;
return id;
}
@Override
public int[] think(int[] zahlen) throws RobotException {
int remember;
if (isPowerOn() == true) {
for (int zahl : zahlen) {
if (zahl == 42) {
fehler = new RobotMagicValueException("Fehler! Zahl 42 im Array!");
throw fehler;
}
}
for (int i = 1; i < zahlen.length; i++) {
remember = zahlen[i];
int k = i;
@ -35,6 +46,10 @@ public class C3PO extends Roboter{
zahlen[k] = remember;
}
return zahlen;
} else
fehler = new RobotIllegalStateException("Roboter ausgeschaltet! Bitte einschalten.");
throw fehler;
}
}

View File

@ -7,6 +7,7 @@ public class Nexus6 extends Roboter {
String name;
int id;
RobotException fehler;
private static Nexus6 PRIS;
@ -40,14 +41,16 @@ public class Nexus6 extends Roboter {
//Methode soll Fehler ausgeben, da der Roboter nicht Funktioniert.
@Override
public String speak(int[] zahlen) throws RobotException {
throw new RobotIllegalStateException ("Roboter ausgeschaltet und Defekt!");
fehler = new RobotIllegalStateException ("Roboter ausgeschaltet und Defekt!");
throw fehler;
}
//Methode soll Fehler ausgeben, da der Roboter nicht Funktioniert.
@Override
public int[] think(int[] zahlen) throws RobotException {
throw new RobotIllegalStateException ("Roboter ausgeschaltet und Defekt!");
fehler = new RobotIllegalStateException ("Roboter ausgeschaltet und Defekt!");
throw fehler;
}

View File

@ -3,30 +3,38 @@ package Domäne;
import java.util.Arrays;
import tpe.exceptions.roboter.Robot;
import tpe.exceptions.roboter.RobotException;
import tpe.exceptions.roboter.exceptions.RobotException;
import tpe.exceptions.roboter.exceptions.RobotIllegalStateException;
import tpe.exceptions.roboter.exceptions.RobotMagicValueException;
public class R2D2 extends Roboter {
private int id;
private static int idZähler = 0;
private RobotType robotType;
RobotException fehler;
R2D2 (String name){
super (name);
R2D2(String name) {
super(name);
this.robotType = RobotType.R2D2;
this.id = idZähler;
idZähler++;
}
@Override
public int[] think(int[] zahlen) throws RobotException {
int remember;
if (isPowerOn() == true) {
for (int zahl : zahlen) {
if (zahl == 42) {
fehler = new RobotMagicValueException("Fehler! Zahl 42 im Array!");
throw fehler;
}
}
for (int i = 0; i < zahlen.length - 1; i++) {
int smallest = i;
for (int k = i+1; k < zahlen.length; k++) {
for (int k = i + 1; k < zahlen.length; k++) {
if (zahlen[i] < zahlen[smallest]) {
smallest = k;
}
@ -36,14 +44,14 @@ public class R2D2 extends Roboter {
zahlen[smallest] = remember;
}
return zahlen;
} else
fehler = new RobotIllegalStateException("Roboter ausgeschaltet! Bitte einschalten.");
throw fehler;
}
@Override
public int getId() {
// TODO Auto-generated method stub
return 0;
return id;
}
}

View File

@ -4,11 +4,14 @@ import java.util.stream.IntStream;
import tpe.exceptions.roboter.Robot;
import tpe.exceptions.roboter.exceptions.RobotException;
import tpe.exceptions.roboter.exceptions.RobotIllegalStateException;
import tpe.exceptions.roboter.exceptions.RobotMagicValueException;
public abstract class Roboter implements Robot {
final String name;
boolean power;
RobotException fehler;
// Roboter wird in einem ausgeschalteten Zustand instanziiert!
@ -53,12 +56,22 @@ public abstract class Roboter implements Robot {
@Override
public RobotException getLastException() {
// TODO Auto-generated method stub
return null;
return fehler;
}
public String speak(int[] zahlen) throws RobotException {
if (isPowerOn() == true) {
for (int zahl : zahlen) {
if (zahl == 42) {
fehler = new RobotMagicValueException("Fehler! Zahl 42 im Array!");
throw fehler;
}
}
return prepare(zahlen);
} else
fehler = new RobotIllegalStateException("Roboter ausgeschaltet! Bitte einschalten.");
throw fehler;
}
private String prepare(int[] zahlen) {

View File

@ -0,0 +1,8 @@
package tpe.exceptions.roboter.exceptions;
public class RobotMagicValueException extends RobotException {
public RobotMagicValueException (String message) {
super(message);
}
}