T-Rex: Wann wirft man eine Exception

Beitrag lesen

Moin Sven,

soviel Text und Mühe hätte ich jetzt nicht erwartet, danke :).

Also ich hab es ja schon an anderer Stelle gesagt, ihr sollt euch nicht zu sehr auf das Beispiel versteifen. Du hast schlicht die Grundlage geändert um einer Exception aus dem Weg zu gehen. Wäre das hier ein Spiel hättest du die Spielregeln geändert -> Cheater ;).
Wobei ich mir immer noch die Frage stelle ob das eine Exception ist.

Die Sache mit den unterschiedlichen Exceptions sieht interessant aus. Mir stellt sich nur die Frage "wozu"? Ich bin selbst mal auf die Idee gekommen unterschiedliche Exceptions zu machen. Hab die Idee aber verworfen da ich keinerlei Vorteil darin sah.
Die Exceptions die ich aktuell werfe, können mittels spezieller Klasse gespeichert werden. Ich hab also in meiner Datenbank ein Exceptionlog. Da sehe ich auch den "trace" also den weg der genommen wurde bis zu der Exception. Wieso brauche ich 3 (oder x) verschieden Exceptions?

Wir können an die Sache der Exceptions auch mal anders ran gehen. Mein ehemaliger Chef war der Sache z.B. total abgeneigt (nagut er war auch unittests abgeneigt...). Für ihn gab es immer nur die Zustände true und false (und natürlich andere Werte, wenn man z.B. das aktuelle Datum zurück haben möchte). True = Funktion lief wie erwartet und false = Funktion hatte ein Problem. Hier und da wurde dann ein "Errorhandling" benötigt. Das bedeutet in diesem Fall dass er eine Fehlermeldung haben möchte, damit er bzw. der User weiß wo das Problem war. Das hat er dann bei jedem Objekt wo er es brauchte extra implementiert. Das war immer eine Variable ("message") welche einen Fehlertext beinhaltete. Das ganze sah dann immer ungefähr so aus:

class cKlasse  
{  
private $strMessage = "";  
public function getMessage()  
{  
   return $this->strMessage;  
}  
public function method()  
{  
//--- mach irgendwas  
   if(Fehler)  
   {  
      $this->strMessage = "Fehler!";  
      return false;  
   }  
}  
}  

Und schwups sind wir bei meiner Ursprungsfrage die ich immer noch nicht geklärt sehe, wann werfe ich eine Exception? Wie man bei meinem alten Chef sieht muss man gar keine Exceptions schmeissen.
Andere sagen bei Ausnahmen. Tjo bei dem Wort Exception hätte ich das fast vermutet, aber wann spreche ich von einer Ausnahme? Wenn die Funktion ihrer Aufgabe nicht nachkommen kann? Wenn ja, dann müsste ich bei meinem Beispiel 3 Exceptions schmeissen. Oder gibt es dafür keine Regel und ich mache es nach Gefühl?

  • Gruß T-Rexberg