Weiter Aufgabenbearbeitung

main
Jan Emmerich 2026-06-18 19:31:05 +02:00
parent e9e3cdce89
commit 93d494e528
7 changed files with 195 additions and 151 deletions

View File

@ -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

View File

@ -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);
}
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
});
}
}

View File

@ -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

View File

@ -118,16 +118,21 @@
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/eigene_ausnahme/Fuse.java">
<error line="36" column="11" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="47" column="11" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="37" column="5" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
<error line="50" column="11" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/eigene_ausnahme/FuseTrippedException.java">
<error line="7" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="8" severity="error" message="Zeile ist 81 Zeichen lang (Obergrenze ist 80)." source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
<error line="8" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="9" column="1" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
<error line="12" column="48" severity="error" message="Vor &apos;{&apos; fehlt ein Leerzeichen." source="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck"/>
<error line="19" severity="error" message="Zeile ist 109 Zeichen lang (Obergrenze ist 80)." source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/eigene_ausnahme/IllegalCurrentException.java">
<error line="7" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="8" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="9" column="1" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/handle_or_declare/Buchstabenzaehler.java">
<error line="3" column="8" severity="error" message="Nicht verwendeter Import - java.io.BufferedReader." source="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck"/>