[C++] Fehlerbehandlung

Online-Skater

Erfahrenes Mitglied
Hallo liebe Tutorianer

Mein Problem ist folgendes, ich würde gerne wissen wie man eine Funktion mit Rückgabewert so schreiben kann, dass sie "unverwüstlich" ist. Ok also das Problem ist schwer zu beschreiben, hier ein Bsp.:
C++:
// Return top Elem and remove it
bool Stack::pop(int &Value)
{
  if (!is_empty())
  {
	ELEM *puffer;
	puffer = this->first;
	Value = puffer->Value;
	this->first = puffer->prev;
	delete puffer;
        this->length--;

	return 1;
  }
  return 0;
}
Wie man sieht habe ich mir den Stack nachprogrammiert und die Objektorientierte Programmierung zu lernen. Nun habe ich es so gemacht, dass der User einen Wert aus dem Stack nur mit einer "if-Anweisung" bekommen kann, nämlich per Referenzübergabe. Aber ich finde diese Lösung nicht so optimal, weiß aber nicht wie man es eleganter machen könnte. Normalerweise soll diese Funktion einen Integer zurückgeben, doch sobald der Stack leer ist kann ich keinen Integer zurückgeben, da dieser "ein Wert vom Stack" sein könnte.
Wie kann man solche Art von Problemen lösen so das sie "User-freundlich" sind oder meint ihr das sollte der Programmierer erkennen ?

Danke für Tipps
 
Hi,

Wie kann man solche Art von Problemen lösen so das sie "User-freundlich" sind oder meint ihr das sollte der Programmierer erkennen ?
Also ich denke das das schon sehr gut erkennbar ist wie die Funktion zu benutzen ist.
Glaube auch nicht das das irgendwie User-unfreundlich ist oder so. Wenn du jetzt aber trotzdem den Wert lieber als Rückgabewert haben willst dann bleibt dir glaubi ch nichts anderes übrig als eine Exception zu werfen. Eigentlich ist das auch die aller sauberste Lösung, allerdings hab ich unter c++ noch nie jemanden eine Exception werfen sehn.

Gruß Benny
 
Zurück