hallo,
Mein Problem besteht darin, daß ich keine Möglichkeit finde, Fehlermeldungen von call_user_func_array() abzufangen. Wenn also eine so aufgerufende Funktion einen Fehler zurückgibt, so kann ich das nicht überprüfen.
die frage ist, ob deine funktion eine exception auslöst, oder einen für dich unerwarteten wert zurück gibt.
Wenn nun call_user_func_array("is_dir",$path) einen Fehler verursacht
das tut sie nicht, sondern sie gibt false zurück. du musst also dein $ret auf (in dem fall) true prüfen. wenn das nicht der fall ist, löst du mit throw eine Exception aus. Die ausgelöste Exception enthält standardmässig die debug_backtrace ausgabe.
Nur leider kann $ret alle möglichen Werte zu recht haben, ohne das es einen Fehler bedeuteten würde. Wenn also im obrigen Beispiel $path einfach kein Verzeichnis ist, dann wird FALSE zurückgegeben und die Fehlermeldung erzeugt.
hier hast du anscheinend einen konzeptionellen fehler, wenn $ret alles sein kann. dann schreib dir eben eine funktion, die nur im falschen fall false zurückgibt. dann brauchst du zwar auch kein call_user_func_array mehr, aber so kommst du wohl nicht weiter. wie gesagt, bei deinem beispiel wird kein fehler ausgelösst.
andreas