Gibt es eigentlich eine allgemeine Regel was eine Methode zurück geben sollte?
Vor allem will ich wissen wie man am besten auf Fehler reagiert.
Es ist praktisch, wenn das aufrufende Script/Objekt/Controller mit einem
if($meinObject->machwas($wert)) {
// alles gut, mach weiter
}else{
// Hilfe schreien
}
reagiert. machwas() gibt also ein true oder false zurück.
Mal angenommen machwas() macht mehrere Dinge und eins davon geht schief und es kommt ein false zurück. Dann will ich vielleicht wissen, was davon nicht geklappt hat. Mir fallen folgende Lösungsansätze ein.
1.) Ich gebe statt einem false ein Array oder Objekt zurück. Dann müsste ich in der else Bedinnung prüfen was da zurückkommt.
2.) Ich könnte der Klasse eine Eigenschaft geben wie „isTrue“ auf das ich dann prüfen kann und eine error Eigenschaft in dem ich den Fehler schreibe/abfrage.
3.) Oft sehe ich auch, dass generell ein Array oder Objekt zurückgegeben wird. zB. Return array('isTrue’ => false, ’error’ => ’Datei nicht gefunden’ )
Was ist elegant und was sollte man vermeiden?
Dass man kritische Methoden mit try-catch abfangen sollte ist mir klar, nur weiß ich im catch Block auch nicht was den Fehler verursacht hat und wie darauf reagieren soll.
Vor allem will ich wissen wie man am besten auf Fehler reagiert.
Es ist praktisch, wenn das aufrufende Script/Objekt/Controller mit einem
if($meinObject->machwas($wert)) {
// alles gut, mach weiter
}else{
// Hilfe schreien
}
reagiert. machwas() gibt also ein true oder false zurück.
Mal angenommen machwas() macht mehrere Dinge und eins davon geht schief und es kommt ein false zurück. Dann will ich vielleicht wissen, was davon nicht geklappt hat. Mir fallen folgende Lösungsansätze ein.
1.) Ich gebe statt einem false ein Array oder Objekt zurück. Dann müsste ich in der else Bedinnung prüfen was da zurückkommt.
2.) Ich könnte der Klasse eine Eigenschaft geben wie „isTrue“ auf das ich dann prüfen kann und eine error Eigenschaft in dem ich den Fehler schreibe/abfrage.
3.) Oft sehe ich auch, dass generell ein Array oder Objekt zurückgegeben wird. zB. Return array('isTrue’ => false, ’error’ => ’Datei nicht gefunden’ )
Was ist elegant und was sollte man vermeiden?
Dass man kritische Methoden mit try-catch abfangen sollte ist mir klar, nur weiß ich im catch Block auch nicht was den Fehler verursacht hat und wie darauf reagieren soll.
Kommentar