Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Wer bietet mehr: Aufgabe 8.2
hey ne Frage ich bin aktuell bei 10 Exceptions
hat schon jemand ne 11te gefunden (auch wenn nur 10 Methodenrümpfe vorgegeben sind… Die Aufgaben sind ja des öfteren mal etwas fehlerhaft,… ähhh sehr)
bzw wenn ich noch ne 11te finde, darf ich dann einfach ne triggerException11() anlegen, welche auch von EST gecheckt wird?
Alle „Exceptions“ sind vom Typ Throwable, also sollte auch das javaoutofmemory-gedingse was gültiges sein
sonst wären es nur 9 Exceptions
Zu der Frage:
Ja Sie sind alle Different
Und nein, ich habe keine Reflections, Bytecodemanipulation dazu verwendet
Also falls noch jemand ne 11te finden sollte, wäre super wenn ihrs hier reinschreiben würdet… dann würde ich auch anfangen danach zu suchen
Out of Memory ist ein Error, keine Exception. Ich arbeite ohnehin an einem Beweis, was die maximal mögliche Anzahl Exceptions wäre. Bis jetzt wäre ich bei 11 und ich probiere, das auf 7 zu reduzieren.
Wenn jemand mehr als 10 verschiedene (nach der Definition des Blatts) Throwables triggern kann, darf sie/er das gerne an aud@i2.cs.fau.de schicken. Selbst hinzugefügte, öffentliche Methoden werden im EST natürlich nicht berücksichtigt (und sind auch nicht erlaubt → Blatt 0).
Ich habs deswegen ja auch in „“ geschrieben
Das Out-Of-Memory ist nach Ict und anscheinend auch nach dem Aufgabenblatt (nur einmal durchgelesen) gültig
Und wieso willst du des auf 7 reduzieren???
bzw. hast du die 11 ohne des out-of-memory oder inkl. dem out-of-memory
Von richtigen Exceptions sehe ich nur 7. Und ich habe keine 11 (bin bei 8), sondern ich versuche, einen Beweis zu finden, der mehr als 7 (richtige) Exceptions nicht zulässt. Außerdem stand im Blatt eig. „Ausnahmen“, aber wenn „Throwables“ gemeint sind, dann gibt es natürlich mehr.
[quote=knotenpunkt]
Die Aufgaben sind ja des öfteren mal etwas fehlerhaft,… ähhh sehr)
[/quote][/quote]
Es reicht für die volle Punktzahl, alle echten Exceptions zu triggern. Das auch andere Throwables zählen ist ein Entgegenkommen. Aber wenn ihr drauf besteht, nehm ich das wieder raus…
ok ich hab bis jetzt nur einen vm limit error erzeugt
mit dem anderen wäre ich dann bei 11
Ict könntet ihr eure max Exceptionanzahl in den Vorlagen auf 11 erhöhen, weil wie du ja schon gesagt hast, dass man selber des nicht erweitern darf
Ne lass ruhig mal drinnen bzw. die Frage: Du hast es noch nicht aus dem Gültigkeitsbereich herausgenommen, oder?
Ehm noch ne Frage an dich ICT: Weißt du ob es mehr als 9 „echte“ Exceptions gibt und wenn nein wie werden auf die 9-Exceptions die Punkte verteilt
7/9-tel Punkte auf eine Exception?
Nein, wenn du 10 (verschiedene!) hast ist das mehr als genug. Die Vorlage zu ändern zieht nur jede Menge organisatorischer Schmerzen nach sich auf die ich gerne verzichten kann.
Wie auch auf dem Blatt steht wird im öffentlichen Test (der den Haken anzeigt) sowieso nur getestet, ob in irgendeiner Methode irgendwas geflogen kommt. Aber ja, da ichs oben gesagt habe, werden weiterhin auch Errors zählen.
Die Anzahl der Methoden reicht aus, um mehr Fehler auszulösen, als ich absichtlich eingebaut habe. Die genaue Anzahl und Verteilung gibts dann in der Korrektur.
Und du darfst meinen Nick auch mal so schreiben, wie er da steht
Aufgabe für Cracks und iCT
icT, da du als Aufgabensteller anscheinend selber nicht so genau weißt, wieviele Exceptions auftreten können
hier mal ne kleine Liste, um dich etwas zu unterstützen:
java.lang.NegativeArraySizeException [1x]
java.lang.NumberFormatException: [1x]
java.lang.ArrayIndexOutOfBoundsException: [2x]
java.lang.NullPointerException [2x]
java.lang.AufgabeMalWiederGrottenSchlechtGestellt [27x] //Äh ups.... falsche Aufgabe... diese Exception fliegt doch bei Aufgabe 8.3
java.lang.ArithmeticException: [1x]
java.lang.OutOfMemoryError: [1 bzw. 2 mal zählt ja aber nur als 1 mal, weils in der gleichen Zeile ist]
SUM [8x]
So und nun die 9te (für Info-Cracks geeignet)
======
Running triggerException9(): Exception triggered:
java.lang.NullPointerException
at CashRegister.average(CashRegister.java:42) //das ist die Zeile mit sum += prices[i];
at CashRegisterTest.triggerException9(CashRegisterTest.java:XXXXX)
at CashRegisterTest.main(CashRegisterTest.java:YYYYYY)
======
Also wie bereits erwähnt… keine Reflections oder Bytecodemanipulation verwendet, obwohl das ja eigentlich durch die Aufgabe nicht ausgeschlossen wird
Also iCt, dass du auch mal ne Herausforderung bekommst… darfste versuchen obige Exception mit den Spielregeln, die du selbst erstellt hast zu lösen
Dann kannste ja mal zeigen, dass du deines AUD/PFP-Team Sitzes würdig bist
Achja keinen formalen Beweis, sondern eine Java-Lösung die in weniger als 1-2 sec die obige Exception schmeißt
lg knotenpunkt
PS: Du brauchst dir jetzt keinen passenden regEx ausdenken…
ich habe den “Schadcode”, der diese Exception auslöst eh noch nicht hochgeladen