Leider sehe ich immer wieder seltsame Konstrukte wie Exceptions in php behandelt werden. Exceptions sollten zunächst einmal nur, wie der Name schon sagt, in Ausnahmen geschmissen werde. Wann eine Ausnahme ist bestimmt der Kontext. Es kann z.B in einem Fall notwendig sein, dass ein bestimmte Datei vorhanden ist um den Programmablauf fortsetzten zu können. In einem anderen Fall reicht es eventuell einfach ein NULL oder FALSE zurückzugeben, da es kein Einfluss auf den weiteren Programmverlauf hat.
Denn "Exception heißt nicht, dass sie nur ausnahmsweise richtig eingesetzt werden. :-)"
Wenn ich dann eine Exception schmeiße ist zunächst einmal wichtig den Stacktrace nicht zu verschlucken indem man z.B eine Exception fängt und gleich weiter wirft:
try {
//irgendetwas was schief geht
$life = new Life();
$life->solveAllProblems();
} catch ( Exception $e ) {
throw new Exception ( 'Es konnten nicht alle Fragen des Lebens geklärt werden' );
}hierbei geht die Message bzw. der ganze Stacktrace des try Blocks verloren und wir bekommen nur "Es konnten nicht alle Fragen des Lebens geklärt werden" anstelle der speziellen Exception die eventuell in Life::solveAllProblems geworfen wurde.
Sinnvoll wäre es z.B:
try {
//irgendetwas was schief geht
$life = new Life();
$life->solveAllProblems();
} catch ( ProblemOfLifeAnDeathException $e ) {
// hier könnte man dann diese spezielle Ausnahme behandeln
// wenn jemand weiß was da zu tun ist :-)
// aber keine Sorge die wenigsten schmeißen diese Exception
}
$life->liveAHappyLife();Dies ist sicherlich nur eine wichtige Grundregel für das richtige Werfen und Fangen von Exceptions, aber mal ein Anfang.


0 Antworten über Exceptions Fangen und Werfen - Teil 1
Bisher gibt es keine Kommentare.