On Tue, Aug 2, 2011 at 4:47 PM, Richard Quadling <rquadl...@gmail.com> wrote: > Hi. > > Given the relatively simple code below, why can't I throw an exception > in __toString()? > > <?php > class AlwaysFails { > public function asString() { > throw new Exception('Failed in asString()'); > } > > public function __toString() { > throw new Exception('Failed in __toString()'); > } > } > > $failure = new AlwaysFails; > try { > echo $failure->asString(); > } > catch(Exception $ex) { > echo $ex->getMessage(); > } > > try { > echo $failure; > } > catch(Exception $ex) { > echo $ex->getMessage(); > } > ?> > > outputs ... > > Failed in asString() > Fatal error: Method AlwaysFails::__toString() must not throw an > exception in Z:\fa1.php on line 21 > > > > > -- > Richard Quadling > Twitter : EE : Zend : PHPDoc > @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >
http://stackoverflow.com/questions/2429642/why-its-impossible-to-throw-exception-from-tostring -- Ferenc Kovács @Tyr43l - http://tyrael.hu -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php