Edit report at http://bugs.php.net/bug.php?id=32100&edit=1
ID: 32100
Comment by: hardyanto dot donny at gmail dot com
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:
"finally" is very useful for using ADODB:
$db->StartTransaction();
try{
....
... any exception can occur here...
....
} finally {
$db->CompleteTrans();
}
Even there is exception occur in try block, the CompleteTrans() always
be
called.
Previous Comments:
------------------------------------------------------------------------
[2010-12-10 23:22:17] btsai at vrwarp dot com
Wouldn't the argument against finally from Bjarne Stroustrup's C++ Style
and Technique FAQ
(http://www2.research.att.com/~bs/bs_faq2.html#finally) hold true?
Basically, most good uses of finally are used for deallocating
resources. Another way would simply be to design an object that
represents the resource that automatically deallocates itself via the
destructor.
------------------------------------------------------------------------
[2010-12-10 16:08:56] marcus at lastcraft dot com
Hi...
The lack of finally causes us some crufty hard to debug code. The
comment about swallowing the source of the exception is not an academic
one - I've had grief over this.
As for exceptions being used for "control flow" - they are control flow,
that's the whole point. There is an antiquated argument from the C++ era
about this, mostly driven by outdated performance data. Exceptions are
not the same as errors, being more akin to a continuation when the usual
return path does not make sense.
Please, plase add finally to PHP as Java did to C++.
yours, Marcus
------------------------------------------------------------------------
[2010-12-10 12:02:15] joshuaswift at gmail dot com
Please add a finally block for exception handling
------------------------------------------------------------------------
[2010-10-03 07:58:34] matsubokkuri+php at gmail dot com
> c891652 at bofthew dot com
I'm disappointed about this request is closed without critical reasons.
The first comment author doesn't understand OOP correctly. The code
cannot raise
exception to upper class.
The code would be following without finally statement.
// create temporary file
try{
// write to temporary file
}catch(ConnectionException $e){
// delete temporary file
}
// delete temporary file
The "delete temporary file" sentence would be duplicate.
I can write with finally as following without duplicate "delete
temporary file".
// create temporary file
try{
// write to temporary file
}finally{
// delete temporary file
}
------------------------------------------------------------------------
[2010-09-21 09:47:37] c891652 at bofthew dot com
I feel nothing but disappointed that this bug got closed, without "any"
reason being written in the comments.
I also stand for including "finally". It's a well known Exception
Handling control block, and others in this bug have shown clearly why it
is needed.
------------------------------------------------------------------------
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