From 93d494e528c855819dcee492dacc3fb13b1145ff Mon Sep 17 00:00:00 2001 From: "Jan.Emmerich" <3026842@stud.hs-mannheim.de> Date: Thu, 18 Jun 2026 19:31:05 +0200 Subject: [PATCH] Weiter Aufgabenbearbeitung --- erledigt.txt | 5 +- .../pr2/exceptions/eigene_ausnahme/Fuse.java | 10 +- .../eigene_ausnahme/FuseTrippedException.java | 14 +- .../IllegalCurrentException.java | 22 +- .../eigene_ausnahme/test/FuseTest.java | 286 +++++++++--------- sources/target/checkstyle-cachefile | 2 +- sources/target/checkstyle-result.xml | 7 +- 7 files changed, 195 insertions(+), 151 deletions(-) diff --git a/erledigt.txt b/erledigt.txt index 4aaa17a..50d426b 100644 --- a/erledigt.txt +++ b/erledigt.txt @@ -1,5 +1,6 @@ -- Abstrakte Klassen 1 -- Abstrakte Klassen 2 +- Abstrakte Klassen 1 (nochmal reinschauen) +- Abstrakte Klassen 2 (nochmal reinschauen) - Ausnahmen 1 - Enum 1 - Enum 2 +- Ausnahme 2 diff --git a/sources/src/main/java/pr2/exceptions/eigene_ausnahme/Fuse.java b/sources/src/main/java/pr2/exceptions/eigene_ausnahme/Fuse.java index 7c2180f..d36d3ba 100644 --- a/sources/src/main/java/pr2/exceptions/eigene_ausnahme/Fuse.java +++ b/sources/src/main/java/pr2/exceptions/eigene_ausnahme/Fuse.java @@ -32,8 +32,11 @@ public class Fuse { * @throws IllegalCurrentException Ausnahme bei einem * ungültigen Spannungswert. */ - public Fuse(int tripCurrent) { + public Fuse(int tripCurrent) throws IllegalCurrentException { // TODO: IllegalCurrentException werfen, wenn der Strom ungültig ist + if (tripCurrent != A16 && tripCurrent != A25 && tripCurrent != A32) { + throw new IllegalCurrentException(tripCurrent); + } this.tripCurrent = tripCurrent; } @@ -43,7 +46,10 @@ public class Fuse { * @param current Strom, der durch die Sicherung fließt. * @throws FuseTrippedException wird geworfen, wenn der Srom zu groß wird. */ - public void use(int current) { + public void use(int current) throws FuseTrippedException { // TODO: FuseTrippedException werfen, wenn der Strom zu groß ist + if (current > tripCurrent) { + throw new FuseTrippedException(tripCurrent, current); + } } } diff --git a/sources/src/main/java/pr2/exceptions/eigene_ausnahme/FuseTrippedException.java b/sources/src/main/java/pr2/exceptions/eigene_ausnahme/FuseTrippedException.java index 18e6f34..a198e4f 100644 --- a/sources/src/main/java/pr2/exceptions/eigene_ausnahme/FuseTrippedException.java +++ b/sources/src/main/java/pr2/exceptions/eigene_ausnahme/FuseTrippedException.java @@ -3,7 +3,19 @@ package pr2.exceptions.eigene_ausnahme; /** * Ausnahme, wenn die Sicherung auslöst. */ -public class FuseTrippedException { +public class FuseTrippedException extends Exception { // TODO: zu einer Ausnahme machen // TODO: Nennstrom und Auslösestrom speichern und in toString wieder ausgeben + private int nennstrom; + private int ausloeser; + + FuseTrippedException(int nenn, int aus){ + this.nennstrom = nenn; + this.ausloeser = aus; + } + + @Override + public String toString() { + return String.format("Der Ausloeser war %d, und der Nennstrom ist %d", ausloeser, nennstrom); + } } diff --git a/sources/src/main/java/pr2/exceptions/eigene_ausnahme/IllegalCurrentException.java b/sources/src/main/java/pr2/exceptions/eigene_ausnahme/IllegalCurrentException.java index 932e6d8..7348723 100644 --- a/sources/src/main/java/pr2/exceptions/eigene_ausnahme/IllegalCurrentException.java +++ b/sources/src/main/java/pr2/exceptions/eigene_ausnahme/IllegalCurrentException.java @@ -3,7 +3,27 @@ package pr2.exceptions.eigene_ausnahme; /** * Ausnahme, wenn eine Sicherung angelegt werden soll, die es nicht gibt. */ -public class IllegalCurrentException { +public class IllegalCurrentException extends Exception { // TODO: zu einer Ausnahme machen // TODO: Nennstrom speichern, mit dem die Sicherung angelegt werden sollte. + + private int current; + + IllegalCurrentException(String msg, int current) { + super(msg); + this.current = current; + } + + IllegalCurrentException(int current) { + this.current = current; + } + + public int getCurrent() { + return current; + } + + @Override + public String toString() { + return String.format("Der Falsche Strom betrug: %d", current); + } } diff --git a/sources/src/test/java/pr2/exceptions/eigene_ausnahme/test/FuseTest.java b/sources/src/test/java/pr2/exceptions/eigene_ausnahme/test/FuseTest.java index 66dd5e0..d0b4863 100644 --- a/sources/src/test/java/pr2/exceptions/eigene_ausnahme/test/FuseTest.java +++ b/sources/src/test/java/pr2/exceptions/eigene_ausnahme/test/FuseTest.java @@ -13,147 +13,147 @@ public class FuseTest { // TODO: Quellcode wieder einkommentieren // -// /** -// * Testet die Erzeugung von Sicherungen mit gültigen Werten. -// * -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testCreationValid() throws IllegalCurrentException { -// new Fuse(Fuse.A16); -// new Fuse(Fuse.A25); -// new Fuse(Fuse.A32); -// } -// -// /** -// * Testet die Erzeugung von Sicherungen mit ungültigen Werten. -// * -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testCreationValid1() throws IllegalCurrentException { -// Assertions.assertThrows(IllegalCurrentException.class, () -> { -// new Fuse(15); -// }); -// } -// -// /** -// * Testet die Erzeugung von Sicherungen mit ungültigen Werten. -// * -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testCreationValid2() throws IllegalCurrentException { -// Assertions.assertThrows(IllegalCurrentException.class, () -> { -// new Fuse(-1); -// }); -// } -// -// /** -// * Testet die Erzeugung von Sicherungen mit ungültigen Werten. -// * -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testCreationValid3() throws IllegalCurrentException { -// Assertions.assertThrows(IllegalCurrentException.class, () -> { -// new Fuse(0); -// }); -// } -// -// /** -// * Testet die Erzeugung von Sicherungen mit ungültigen Werten. -// * -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testCreationValid4() throws IllegalCurrentException { -// Assertions.assertThrows(IllegalCurrentException.class, () -> { -// new Fuse(Integer.MAX_VALUE); -// }); -// } -// -// /** -// * Testet die Erzeugung von Sicherungen mit ungültigen Werten. -// * -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testCreationValid5() throws IllegalCurrentException { -// Assertions.assertThrows(IllegalCurrentException.class, () -> { -// new Fuse(Integer.MIN_VALUE); -// }); -// } -// -// /** -// * Testet das Auslösen der Sicherung. -// * -// * @throws FuseTrippedException Sicherung hat ausgelöst. -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testTripping1() -// throws FuseTrippedException, IllegalCurrentException { -// -// Fuse f = new Fuse(Fuse.A16); -// f.use(5); -// f.use(16); -// f.use(0); -// -// f = new Fuse(Fuse.A25); -// f.use(5); -// f.use(16); -// f.use(25); -// -// -// Assertions.assertThrows(FuseTrippedException.class, () -> { -// Fuse f2 = new Fuse(Fuse.A16); -// f2.use(0); -// f2.use(16); -// f2.use(25); -// }); -// } -// -// /** -// * Testet das Auslösen der Sicherung. -// * -// * @throws FuseTrippedException Sicherung hat ausgelöst. -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testTripping2() -// throws FuseTrippedException, IllegalCurrentException { -// Assertions.assertThrows(FuseTrippedException.class, () -> { -// new Fuse(Fuse.A16).use(17); -// }); -// } -// -// /** -// * Testet das Auslösen der Sicherung. -// * -// * @throws FuseTrippedException Sicherung hat ausgelöst. -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testTripping3() -// throws FuseTrippedException, IllegalCurrentException { -// -// Assertions.assertThrows(FuseTrippedException.class, () -> { -// new Fuse(Fuse.A16).use(Integer.MAX_VALUE); -// }); -// } -// -// /** -// * Testet das Auslösen der Sicherung. -// * -// * @throws FuseTrippedException Sicherung hat ausgelöst. -// * @throws IllegalCurrentException ungültiger Wert für die Sicherung. -// */ -// @Test -// void testTripping4() -// throws FuseTrippedException, IllegalCurrentException { -// Assertions.assertThrows(FuseTrippedException.class, () -> { -// new Fuse(Fuse.A32).use(40); -// }); -// } + /** + * Testet die Erzeugung von Sicherungen mit gültigen Werten. + * + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testCreationValid() throws IllegalCurrentException { + new Fuse(Fuse.A16); + new Fuse(Fuse.A25); + new Fuse(Fuse.A32); + } + + /** + * Testet die Erzeugung von Sicherungen mit ungültigen Werten. + * + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testCreationValid1() throws IllegalCurrentException { + Assertions.assertThrows(IllegalCurrentException.class, () -> { + new Fuse(15); + }); + } + + /** + * Testet die Erzeugung von Sicherungen mit ungültigen Werten. + * + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testCreationValid2() throws IllegalCurrentException { + Assertions.assertThrows(IllegalCurrentException.class, () -> { + new Fuse(-1); + }); + } + + /** + * Testet die Erzeugung von Sicherungen mit ungültigen Werten. + * + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testCreationValid3() throws IllegalCurrentException { + Assertions.assertThrows(IllegalCurrentException.class, () -> { + new Fuse(0); + }); + } + + /** + * Testet die Erzeugung von Sicherungen mit ungültigen Werten. + * + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testCreationValid4() throws IllegalCurrentException { + Assertions.assertThrows(IllegalCurrentException.class, () -> { + new Fuse(Integer.MAX_VALUE); + }); + } + + /** + * Testet die Erzeugung von Sicherungen mit ungültigen Werten. + * + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testCreationValid5() throws IllegalCurrentException { + Assertions.assertThrows(IllegalCurrentException.class, () -> { + new Fuse(Integer.MIN_VALUE); + }); + } + + /** + * Testet das Auslösen der Sicherung. + * + * @throws FuseTrippedException Sicherung hat ausgelöst. + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testTripping1() + throws FuseTrippedException, IllegalCurrentException { + + Fuse f = new Fuse(Fuse.A16); + f.use(5); + f.use(16); + f.use(0); + + f = new Fuse(Fuse.A25); + f.use(5); + f.use(16); + f.use(25); + + + Assertions.assertThrows(FuseTrippedException.class, () -> { + Fuse f2 = new Fuse(Fuse.A16); + f2.use(0); + f2.use(16); + f2.use(25); + }); + } + + /** + * Testet das Auslösen der Sicherung. + * + * @throws FuseTrippedException Sicherung hat ausgelöst. + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testTripping2() + throws FuseTrippedException, IllegalCurrentException { + Assertions.assertThrows(FuseTrippedException.class, () -> { + new Fuse(Fuse.A16).use(17); + }); + } + + /** + * Testet das Auslösen der Sicherung. + * + * @throws FuseTrippedException Sicherung hat ausgelöst. + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testTripping3() + throws FuseTrippedException, IllegalCurrentException { + + Assertions.assertThrows(FuseTrippedException.class, () -> { + new Fuse(Fuse.A16).use(Integer.MAX_VALUE); + }); + } + + /** + * Testet das Auslösen der Sicherung. + * + * @throws FuseTrippedException Sicherung hat ausgelöst. + * @throws IllegalCurrentException ungültiger Wert für die Sicherung. + */ + @Test + void testTripping4() + throws FuseTrippedException, IllegalCurrentException { + Assertions.assertThrows(FuseTrippedException.class, () -> { + new Fuse(Fuse.A32).use(40); + }); + } } diff --git a/sources/target/checkstyle-cachefile b/sources/target/checkstyle-cachefile index 46e2851..8d7b3b3 100644 --- a/sources/target/checkstyle-cachefile +++ b/sources/target/checkstyle-cachefile @@ -1,4 +1,4 @@ -#Thu Jun 18 19:00:14 CEST 2026 +#Thu Jun 18 19:22:21 CEST 2026 /home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/schnick/Move.java=1779967432494 /home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/singleton/MyEnum.java=1779967432495 /home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/ausnahmen_testen/CrypterCaesar.java=1779967432495 diff --git a/sources/target/checkstyle-result.xml b/sources/target/checkstyle-result.xml index 66f5158..2ccb946 100644 --- a/sources/target/checkstyle-result.xml +++ b/sources/target/checkstyle-result.xml @@ -118,16 +118,21 @@ - + + + + + +