In many cases this can be done by refactoring to a method: public function main() { $in = fopen('whatever'); $this->whereTheStuffWent($in); fclose($in); }
protected function whereTheStuffWent($in) { try { // Do stuff that might throw an exception } catch (Exception $e) { // Log it or something } } The while loop case in https://bugs.php.net/bug.php?id=36779 could be dealt with by returning a result from whereTheStuffWent and breaking out if it's set. Not too bad. finally { } might be a little more convenient than this I suppose: $finished = $this->whereTheStuffWent($in); fclose($in); if ($finished) { break; } On Tue, Feb 28, 2012 at 9:25 AM, Paul Dragoonis <dragoo...@gmail.com> wrote: > Tried to do something the other day and had to write something a bit quirky > tht would have been super clean with a finally block. > > +1000 > > On Tue, Feb 28, 2012 at 2:22 PM, Kiall Mac Innes <ki...@managedit.ie> wrote: > >> +1000 >> >> This is a feature that I've always wanted in PHP, My main reason being to >> reduce code duplication. eg >> >> try { >> $fh = fopen($filename); >> >> // Do some work on the file + encounter an error. >> throw new Exception(); >> } catch (Exception $e) { >> // Log an error or something >> } finally { >> fclose($fh); >> } >> >> Thanks, >> Kiall >> >> >> On Tue, Feb 28, 2012 at 2:05 PM, Dmitri Snytkine < >> dsnytk...@ultralogistics.com> wrote: >> >> > >> > This is another feature that we know we can live without >> > but those familiar with languages that have 'finally' like Java or Python >> > know that >> > it is very neat feature to have in some situations. >> > >> > Basically the code inside 'finally' is guaranteed to run even if there >> is a >> > 'return' inside try or catch blocks >> > in which case the value to be returned is remembered tempraraly, the code >> > inside finally block executes and then remembered value is returned. >> > >> > >> > Dmitri Snytkine >> > Web Developer >> > Ultra Logistics, Inc. >> > Phone: (888) 220-4640 x 2097 >> > Fax: (888) 795-6642 >> > E-Mail: dsnytk...@ultralogistics.com >> > Web: www.ultralogistics.com >> > >> > "A Top 100 Logistics I.T. Provider in 2011" >> > >> > >> > >> > >> > -- >> > PHP Internals - PHP Runtime Development Mailing List >> > To unsubscribe, visit: http://www.php.net/unsub.php >> > >> > >> -- Tom Boutell P'unk Avenue 215 755 1330 punkave.com window.punkave.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php