Hallo, hab folgende Testmethode: benutzerdefinierte Exception)
Die Methode soll eine Exception werfen, da die Anzahl der Elemente in der Queue das Limit(3, von 0 angefangen) übersteigt.
Die Enter-Methode sieht folgendermaßen aus:
Das PRoblem ist, dass nur die erste Exception nach dem einfügen von den ersten 3 Elementen geworfen wird, aber dann passiert komisches. Beim debugen verschwindet der Debugger in irgenwelchen lang.klassen so richtig tief rein und, wenn man wieder zurück kommt, sind die werte von limit und elementCounter auf Standard zurück gesetzt (3 und 0), obwohl sie ja vorher verändert wurden...
Java:
@Test(expected = OverflowException.class)
public void testEnterWithOverflowException() throws OverflowException {
queueList = new Queue_List();
queueList.enter(2);
queueList.enter(5);
queueList.enter(1);
queueList.enter(8);
queueList.enter(2);
queueList.enter(5);
queueList.enter(1);
queueList.enter(8);
}
Die Methode soll eine Exception werfen, da die Anzahl der Elemente in der Queue das Limit(3, von 0 angefangen) übersteigt.
Die Enter-Methode sieht folgendermaßen aus:
Java:
public void enter(Object value) throws OverflowException {
//falls das limit der Queue noch nicht verdoppelt wurde
if (elementCounter == limit && doubling == 0) {
System.out.println("Limit reached for the first time, space has beed doubled now!");
doubling=1;
limit = limit * 2;
throw new OverflowException("OverflowException");
}
//falls das limit der Queue schon mal verdoppelt wurde
if (elementCounter >= limit && doubling == 1) {
System.out.println("Limit reached for the last time, no more values can be saved!");
throw new OverflowException("OverflowException");
}
else {..}
} //ansonsten normales einfügen
Das PRoblem ist, dass nur die erste Exception nach dem einfügen von den ersten 3 Elementen geworfen wird, aber dann passiert komisches. Beim debugen verschwindet der Debugger in irgenwelchen lang.klassen so richtig tief rein und, wenn man wieder zurück kommt, sind die werte von limit und elementCounter auf Standard zurück gesetzt (3 und 0), obwohl sie ja vorher verändert wurden...