Re: [PHP] Exception not being caught
2009/7/15 Weston C west...@gmail.com: ?php class A { } $a = new A(); // Ayn would be proud, right? try { echo a is ,$a,\n; } catch(Exception $e) { echo \nException Caught: ; echo $e, $n; } ? This does not run as expected. I'd think that when the implicit string conversion in the try block hits, the exception would be thrown, caught by the catch block, and relayed. Instead you don't ever see the words exception caught and you get Catchable fatal error: Object of class A could not be converted to string. If it's catchable, why isn't it caught in my example? It's not an exception, it's a fatal error. Fatal errors are caught by error handling functions, not by catch blocks. Consequence of having (at least) two separate error handling mechanisms in the same language. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Exception not being caught
There are many examples of error_handlers at http://ar.php.net/manual/es/function.set-error-handler.php The handler only have to cast the error to exception. YOu can write a simple handler or a fully featured one, but the essence is the same... function errorHandler(/*args*/) { $e = new Exception( $message, $code ); throw $e; } On Thu, Jul 16, 2009 at 8:42 AM, David Otton phpm...@jawbone.freeserve.co.uk wrote: 2009/7/15 Weston C west...@gmail.com: ?php class A { } $a = new A(); // Ayn would be proud, right? try { echo a is ,$a,\n; } catch(Exception $e) { echo \nException Caught: ; echo $e, $n; } ? This does not run as expected. I'd think that when the implicit string conversion in the try block hits, the exception would be thrown, caught by the catch block, and relayed. Instead you don't ever see the words exception caught and you get Catchable fatal error: Object of class A could not be converted to string. If it's catchable, why isn't it caught in my example? It's not an exception, it's a fatal error. Fatal errors are caught by error handling functions, not by catch blocks. Consequence of having (at least) two separate error handling mechanisms in the same language. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- Martin Scotta
[PHP] Exception not being caught
So, I've got a little piece of code designed to play with catching the exception that's thrown when an object doesn't have a __toString method. ?php class A { } $a = new A(); // Ayn would be proud, right? try { echo a is ,$a,\n; } catch(Exception $e) { echo \nException Caught: ; echo $e, $n; } ? This does not run as expected. I'd think that when the implicit string conversion in the try block hits, the exception would be thrown, caught by the catch block, and relayed. Instead you don't ever see the words exception caught and you get Catchable fatal error: Object of class A could not be converted to string. If it's catchable, why isn't it caught in my example? Thanks, Weston -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php