[PHP] MyException extends Exception
Auf der Suche nach ein wenig interessanteren Fehlerbehandlungsmöglichkeiten sind mir vor kurzem Exceptions in PHP5 untergekommen. Insbesondere die Möglichkeit Exceptions zu erweitern. Jedoch haben meine neuen Exceptions ein äußerst komisches verhalten.
Denn zum einen muss meine Erbende-Klasse unbedingt die selbe Konstruktorsignatur haben wie Exception, zum anderen kann ich nicht auf meine Properties zugreifen.
Aber nu erstmal ein wenig Code damit ich wisst was ich meine.
PHP-Code:
class LoginException extends Exception
{
private $nick;
private $uid;
private $sid;
/**
* @param String Message The ErrorMessage to Display
* @param Integer Code The ErrorCode of this Error
* @param String/Integer User Nick of the User who is causing this
* Exception
*/
public function __consturct($message = "", $code)
{
$this->nick = "Test";
$this->uid = $_COOKIE['uid'];
$this->sid = session_id();
parent::__construct($message, $code);
}
public function getNick()
{
return $this->nick;
}
public function getUID()
{
return "jo";
}
}
Das wäre meine neu Exception. Nun werf ich die mal fröhlich durch den Interpreter.
PHP-Code:
try
{
$o = throw new LoginException("LoginError", 0);
}
catch(LoginException $e)
{
echo $e->getNick();
echo $e->getUID();
}
So das müsste doch folgendes ausgeben:
Macht es aber nicht, irgendwelche Ideen warum?
Im Grunde sollte es doch kein Problem sein, da ich doch bloß von der Exception-Klasse erbe, aber dennoch läuft der Code nicht.
edit:
Hilfe bin ich dumm -_-
Man sollte darauf achten __construct zu schreiben und nicht __conturct -_-
Jetzt geht alles, ich komm auf meine Eigenschaften, sowie den Konstruktor kann ich mir anpassen.
edit2:
Nichts desto trotz sind Exceptions toll, liest euch mal ein wenig ein.