CMS zum lernen

Und wiedermal ich.
Meine arbeit am CMS zieht sich etwas, was aber vor allem den Grund hat das ich mit Exceptions in PHP 5 rumprobieren.
Dazu hätt ich jetzt 3 fragen:

1. Ich benutze im Moment die Standart Exception klasse die php zur verfügung stellt. Aber in beispiele lese ich immer das diese Klasse vererbt wird (sprich ich erweitere sie zb: DBExecption). Was ist der Vorteil davon und sollte/muss man das machen?

2. Wo genau baut man Exceptions am besten ein. Direkt in die Klasse oder dort wo die Klasse instanziert wird
try
{
$asdf = new klasse();
}
catch (Exception $e)
{
usw.....
}

3. Die frage ist mir grad entfallen , die werd ich nachreichen wenn sie mir wieder einfällt (wie peinlich^^)
 
Also Exceptions baut man direkt in die Klass ein. Diese Vererbungen von Exceptions kann man machen, muss man aber nicht. Ich mache es zum Beispiel auch nicht. Bei werfen von Exception musst du nur beachten, dass diese nicht im Constructor oder Destructor geworfen werden dürfen. Den try...catch Block musst du dann in jedes deiner Scripte einbauen, in denen eine Klasse instanziert wird, die Exceptions wirft.
MfG, Andy
 
Also Exceptions baut man direkt in die Klass ein. Diese Vererbungen von Exceptions kann man machen, muss man aber nicht. Ich mache es zum Beispiel auch nicht. Bei werfen von Exception musst du nur beachten, dass diese nicht im Constructor oder Destructor geworfen werden dürfen. Den try...catch Block musst du dann in jedes deiner Scripte einbauen, in denen eine Klasse instanziert wird, die Exceptions wirft.
MfG, Andy

Ich komm nicht ganz mit , du schreibst zuerst das man Exceptions in klassen einbaut und unten dann, dass der try .. catch block dahin kommt wo man die klasse instanziert. Wenn ich die Exception in die klasse einbaue ist ja dort dann auch der try .. catch block oder?
 
Nein. Werfen tust du die Exceptions in der Klasse. Fangen tust du sie aber dort, wo du die Klasse instanzierst. Schau dir doch mal den betreffenden Teil im Manual an.
mfG, Andy
 
@Catull

Ich würde gern wissen warum man keine Exception im Konstruktor werfen sollte. Wie wir alle wissen hat der Konstruktor keinen Rückgabewert somit kann man Fehler nur mit Exceptions abfangen, dies ist doch sehr sinnvoll oder seh ich da was falsch ?
Es gibt mehrere Gründe warum schon bei der Instanzierung etwas schief gegehn könnte. :)

mfg
 
@Catull

Ich würde gern wissen warum man keine Exception im Konstruktor werfen sollte. Wie wir alle wissen hat der Konstruktor keinen Rückgabewert somit kann man Fehler nur mit Exceptions abfangen, dies ist doch sehr sinnvoll oder seh ich da was falsch ?
Es gibt mehrere Gründe warum schon bei der Instanzierung etwas schief gegehn könnte. :)

mfg

Ich glaub das hab ich mal gelesen. Wenn eine Exception im Construktor geworfen wird wird das Objekt nicht richtig erstellt wenn ich ich recht erinnere.
 
Hi, das ist richtig, wenn im Konstruktor eine Exception geworfen wird, dann steht das Objekt nicht zur Verfügung, aber das ist ja gewollt so, da man genau darauf ja im catch-Block reagiert. Falls man das Objekt auf jeden Fall erzeugen will, macht eine Fehlerbehandlung im Konstruktor mittels Exceptions sowieso keinen Sinn, dann sollte man lieber trigger_error() benutzen und damit eine Warnung ausgeben oder mit anderen Mitteln arbeiten.
 
Ich finds jetzt auch nicht, aber ich weiß, dass ich mal Probleme beim Werfen einer Exception hatte und dass mir dann gesagt wurde, dass das im Constructor Probleme verursacht.
MfG, Andy
 
Zurück