Wie soll ich das denn jetzt Handeln?


09.09.2022, 14:30

EDIT:

Alsooo ... Ich hab rein theoretisch ausversehen die saved_packages map nicht in der Klasse sondern komplett global gespeichert. Das heißt, wenn 2 Instanzen meiner Klasse da waren (Was hier der Fall war), dann war das Package Limit bei Instanz 1 erreicht, bei 2 aber nicht. Das gab halt einen Error, dadurch hat es dann nicht geklappt. Manchmal sind es wirklich die einfachsten Dinge ... Danach hat es btw. auch direkt mit 0 Angefangen zu zählen.

2 Antworten

Meiner Meinung nach müsste es heißen:

if (saved_packages.size() > 10 || used_size >= 100) {
    throw std::exception();
 }

Die erste Fehlermeldung besagt, dass Du mehr als 10 Packages akzeptiert hat, obwohl Du die Anzahl auf 10 begrenzen solltest.

Was dann aber

The add method threw an exception before reaching the limit of 100 bytes.

soll, ist mir auch unklar. Die Anzahl der Packages soll auf 10 begrenzt werden und zusätzlich die Anzahl der Bytes auf 100.

Hilfreich erscheint mir dieser Kommentar:

  // INFO: saved_packages.size() starts (idk why) by 2. So 12 means 10 packages.

Wenn du von 2 bis 12 zählst, hast du aber elf Pakete. Es könnte also helfen, zu schreiben:

  if (saved_packages.size() > 11 && used_size >= 100) {
    throw std::exception();
  }

(also "größer" statt "größer gleich").

Möchtest du das bitte ausprobieren?

Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler

iNeedHelp961 
Fragesteller
 09.09.2022, 07:49

Erstmal: Danke für die Antwort. Dabei kommt dann leider raus:
The add method threw no exception despite exceeding the limit of 10 packages.

0