So,
ich habe mich eigentlich erfolgreich mal mit alternativen, oder sagen wir eigenen, Handlern für Sessions und Errors auseinander gesetzt. Es klappt alles wunderbar, alle Fehler-Meldungen werden brav in mein Framework integriert und werden durch XSL später in eine saubere Anwendung gerendert.
Tja, wäre da nicht
Uncaught Exception thrown in script.php on line 42
Ich habe dann gelesen, das hierfür wohl set_exception_handler() zu benutzen ist, um ähnlich wie bei set_error_handler() eine neue funktion/methode anzugeben.
Mein Problem ist, dass dies bei mir absolut nicht funktioniert und eine weiße Seite produziert.. sogar Copy-Paste des Codes (also nicht auf mein System angepasst) bringt nichts.. sobald ich set_exception_handler() wieder auskommentiere, stehe ich wieder vor dem geliebten rot/weißem Gewand.
Hat jemand eine Ahnung, was das Problem dafür sein könnte? Und stimmt es wirklich, dass die ungefangenen Ausnahmen tatsächlich nicht über den Errorhandler laufen? (Das ist ja die zusätzliche Krux)
Edit: Solang keine ungefangene Exception auftritt, verhalten sich alle Scripts "normal", d.h. laufen normal durch.
Edit2: Und ja, ich habe die einfache Methode genutzt, also nur eine neue Funktion, die dann eine statische Klasse aufruft oder wahlweise auch einfach nur ein print macht.
Kleines Problem mit alternativem Exception Handler
gepostet vor 18 Jahre, 3 Monate von knalli
gepostet vor 18 Jahre, 3 Monate von garyx7de
eine Weiße Seite? und sonst keine Fehlermeldung?
schon mal das beispiel verwendet?
de.php.net/set_exception_handler
(professionelle-softwareentwicklung-mit-php5.de/erste_auflage/oop.foundations.exceptions.html)
schon mal das beispiel verwendet?
de.php.net/set_exception_handler
(professionelle-softwareentwicklung-mit-php5.de/erste_auflage/oop.foundations.exceptions.html)
gepostet vor 18 Jahre, 3 Monate von knalli
Unter Verwendung des "Beispiel 1. set_exception_handler() example" kommt.. nix. (also.. diese 12 Zeilen als eigene PHP-Datei geuppt!)
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
echo "Not Executed\n";
?>
Nach meinem Verständnis sollte hier quasi die gleiche Meldung wie beim Standard ausgegeben werden?
error_reporting(E_ALL); // verzweifelt
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
echo "Not Executed\n";
?>
Nach meinem Verständnis sollte hier quasi die gleiche Meldung wie beim Standard ausgegeben werden?
gepostet vor 18 Jahre, 3 Monate von knalli
Nun.. auf einem anderen Hosting bei PHP 5.0.x funktioniert es (so sollte es ja auch sein).. sogar in meinem etwas umfangreicheren Handling.
Nur bei meinem 5.1-er Install will das nicht laufen.. ich hab keine Ahnung wieso
Nur bei meinem 5.1-er Install will das nicht laufen.. ich hab keine Ahnung wieso
gepostet vor 18 Jahre, 3 Monate von Itchy
Bei mir unter 5.1.4 - Linux, selber kompiliert mit
'--with-apxs2=/usr/local/apache2/bin/apxs' '--with-mysql=/usr/local/mysql/'
'--with-gettext' '--with-xml' '--with-mcrypt' '--with-imap=/root/install/imap-2004d'
'--enable-mbstring' '--with-gd' '--with-zlib' '--with-db4=/usr/local/DB4'
'--with-pgsql=/usr/local/pgsql'
läuft das Codebeispiel auch, muß also irgendwas bei Dir kaputt sein
'./configure' '--prefix=/usr/local/php5'
'--with-apxs2=/usr/local/apache2/bin/apxs' '--with-mysql=/usr/local/mysql/'
'--with-gettext' '--with-xml' '--with-mcrypt' '--with-imap=/root/install/imap-2004d'
'--enable-mbstring' '--with-gd' '--with-zlib' '--with-db4=/usr/local/DB4'
'--with-pgsql=/usr/local/pgsql'
läuft das Codebeispiel auch, muß also irgendwas bei Dir kaputt sein
gepostet vor 18 Jahre, 3 Monate von Toby
Ich hatte den Eindruck, das bei php-5.1.2 einiges nicht passte. php-5.1.4 macht einen besseren Eindruck. Vielleicht mal upgraden?
gepostet vor 18 Jahre, 3 Monate von knalli
PHP Version 5.1.4-1.dotdeb.2 (also Paket, keine eigene Kompilierung)
Also das ist es nicht, aber danke für die gut gemeinten Tipps
Also das ist es nicht, aber danke für die gut gemeinten Tipps
gepostet vor 18 Jahre, 3 Monate von Toby
php5 5.1.4-0.1 auf Debian Testing:
tobyf.de/test.php
Funktioniert (mit dem von dir geposteten Code).
Muss also doch an deiner Version liegen?
tobyf.de/test.php
Funktioniert (mit dem von dir geposteten Code).
Muss also doch an deiner Version liegen?