Edit report at http://bugs.php.net/bug.php?id=32100&edit=1
ID: 32100 Comment by: adam dot pippin at ohmedia dot ca Reported by: ceefour at gauldong dot net Summary: Request 'finally' support for exceptions Status: Closed Type: Feature/Change Request Package: Feature/Change Request Operating System: * PHP Version: 5.* Block user comment: N Private report: N New Comment: --- Disable user permission checking try { Call a half a dozen methods } finally { Re-enable user permission checking } --- The ten year old discussion I found on the issue (http://marc.info/?l=php-internals&m=96774165717219&w=3) doesn't seem terribly applicable to my case. Specifically, it suggests: --- try { ... modify contents ... } catch { ... any error recovery code here ... } ... cleanup code ... --- Except my code doesn't 'recover' from errors. It runs back up the call stack and reports the error to the user. I have absolutely zero use for a catch here. My workaround (which, unlike a basic rethrow preserves the line/file): --- Disable permission checking try { Run methods } catch (Exception $e) { Enable permission checking throw new Exception($e->getMessage(), $e->getCode(), $e); } Enable permission checking --- The workaround simply requires a few extra lines of code and a bunch of duplicated code. But hey, finally isn't required, so it's all good. Previous Comments: ------------------------------------------------------------------------ [2011-03-20 10:44:01] php at techdp dot co dot uk +++ for finally in PHP. It is one of the most elegant and expressive keywords in modern programming, allowing precise capture of error handling semantics, and easy authorship of bug-free code! ------------------------------------------------------------------------ [2011-02-19 17:34:09] gunter at web dot com ++ for finally in PHP. ------------------------------------------------------------------------ [2011-02-17 22:02:08] attila dot m dot magyar at gmail dot com I agree with the previous comments, a 'finally' keyword would be nice and useful when it fits to the conventions and standards applied in a project. If it's not hairy to implement and wouldn't introduce instability in the core, I'd reassure PHP developers to add this feature in a future release. Best regards, Athos ------------------------------------------------------------------------ [2011-02-17 17:09:54] tyra3l at gmail dot com sorry, I screwed up part of my comment when editing: "and he didn't the first which closed the" and he didn't explained in his comment why is it rejected, aside the fact that we (who?) dont't need it Tyrael ------------------------------------------------------------------------ [2011-02-17 16:54:06] tyra3l at gmail dot com +1 for adding the feature. I'm a little bit disappointed that there are no comment from the php core contributors on this issue except helly, and he didn't the first which closed the, I could accept the fact, that this cannot be done by technical reasons, but AFAIK it was rejected, because the core devs at that time didn't used or understood the finally, so they said, that nobody needs that. http://marc.info/?l=php-internals&m=96773381231437&w=2 times has changed, try doesn't leaks memory nowdays (or does it?), people got smarter, machines faster, maybe we could reconsider this feature, and reject it based on the current situation, not from a vague discussion from 10 years ago. Tyrael ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/bug.php?id=32100 -- Edit this bug report at http://bugs.php.net/bug.php?id=32100&edit=1