When I throw an exception which is derived from the internal Exception class and implement __toString but do not return a value, the reported error (in case I don't catch the exception) is:
Fatal error: Uncaught thrown in /home/mfischer/htdocs/php5/MySQL.php on line 8 i.e. the word 'exception' is missing (and there's redundant line break it seems). Example is from: <?php class MyException extends Exception { function __toString() { return ""; } } throw new MyException; ?> If I throw some other object not derived from Exception (e.g. stdClass) I get this (which makes more sense): $ php -r 'throw new stdClass;' Fatal error: Uncaught exception 'stdClass' in Unknown on line 0 What I want to say is, that I think it would be a good idea to print out "Fatal error: Uncaught exception '<classname>' thrown in .." even if __toString is not implemented. Just for consistency. Another thing I observed is the preserving of the case of the classname. If I throw e.g. stdClass, the case is preserved; but not if I throw my own class: $ php -r 'throw new stdClass;' Fatal error: Uncaught exception 'stdClass' in Unknown on line 0 versus $ php -r 'class MyEx extends Exception {}; throw new MyEx;' Fatal error: Uncaught exception 'myex' with message 'Unknown exception' in Command line code:1 Stack trace: #0 {main} thrown in Command line code on line 1 This all may be sound like nitpicking but I think for consistency and if it's not too complex these small things should be looked into. cheers, - Markus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php