Re: Throwing an exception seems to defeat output buffering

From: Date: Tue, 03 Feb 2009 16:35:08 +0000
Subject: Re: Throwing an exception seems to defeat output buffering
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-287568@lists.php.net to get a copy of this message
2009/2/3 Wickland, Leif <lwickland@rightnow.com>: > I would expect that if I turn on output buffering, echo something, throw an exception, and > catch the exception, nothing will have been actually output.. That doesn't seem to be the > case. Throwing an exception seems to defeat output buffering. > > In the following code, I would not expect to see the <h1>, but I do. > > > > <? > try { > ob_start(); > echo '<h1>You should not see this!</h1>'; > throw new Exception('<h2>This should be the first output.</h2>'); > exit( 'Contents: ' . ob_get_clean()); > } > catch (Exception $ex) { > exit('<h2>Exception:</h2>' . $ex->getMessage()); > } > > > I'm exercising that code on PHP 5.2.4 and 5.2.8. > > Does anybody know why throwing an exception seems to override ob_start(), flushing the buffered > output? It doesn't, but the end of the script performs an implicit flush. -Stuart -- http://stut.net/

« previous php.general (#287568) next »