Ich grüble gerade über Exception Handling und bin an zwei Möglichkeiten hängen geblieben.
Erstere ist die wohl gängigste, wann man das so sagen kann: Es wird eine "allgemeine" Exception mit spezifischer Fehlermeldung geworden.
Z.B.:
Nun bin ich auch auf eine Variante gestoßen, bei der für jeweils einen Fehler eine spezifische Exception kreiert wird:
Ich habe die Implementierung der Exception-Klasse nicht gesehen, aber ich gehe mal davon aus, dass sie __toString() überschreibt, die Fehlermeldung damit also dort enthalten ist.
Meine Frage an euch ist nun, ob letztere Variante Vorteile birgt oder weniger ratsam ist. Ein Vorteil, der mir spontan einfällt, ist, dass die Fehlermeldung nicht mehr fest mit der Klasse, in der die Exception geworfen wird, verankert ist. Man kann sie also modifizieren, in dem man lediglich entsprechende Änderungen an der Exception-Klasse vornimmt.
Grüße
Erstere ist die wohl gängigste, wann man das so sagen kann: Es wird eine "allgemeine" Exception mit spezifischer Fehlermeldung geworden.
Z.B.:
PHP-Code:
class Header
{
public function send()
{
if (headers_sent($file, $line))
{
throw new header::Exception('Headers already sent in ' . $file . ':' . $line);
}
}
}
PHP-Code:
class Header
{
public function send()
{
if (headers_sent($file, $line))
{
throw new header::exceptions::HeadersAlreadySent($file . ':' . $line);
}
}
}
Meine Frage an euch ist nun, ob letztere Variante Vorteile birgt oder weniger ratsam ist. Ein Vorteil, der mir spontan einfällt, ist, dass die Fehlermeldung nicht mehr fest mit der Klasse, in der die Exception geworfen wird, verankert ist. Man kann sie also modifizieren, in dem man lediglich entsprechende Änderungen an der Exception-Klasse vornimmt.
Grüße
Kommentar