Exception during object construction from arg call calls object's destructor
| Bug #47771 | Exception during object construction from arg call calls object's destructor | ||||
|---|---|---|---|---|---|
| Submitted: | 2009-03-25 07:38 UTC | Modified: | 2009-03-26 10:18 UTC | ||
| From: | ninzya at inbox dot lv | Assigned: | dmitry (profile) | ||
| Status: | Closed | Package: | Scripting Engine problem | ||
| PHP Version: | 5.3.0RC1 | OS: | Windows XP | ||
| Private report: | No | CVE-ID: | None | ||
[2009-03-25 07:38 UTC] ninzya at inbox dot lv
Description:
------------
If you create new object and pass to it's constructor argument from function call, that has thrown an exception, the object's constructor is not being called (which is correct behavior), but object's destructor is being called (which is not correct behavior). See reproduce code.
Reproduce code:
---------------
<?php
function throw_exc() {
throw new Exception('TEST_EXCEPTION');
}
class Test {
public function __construct() {
echo 'Constr' ."\n";
}
public function __destruct() {
echo 'Destr' ."\n";
}
}
try {
$T =new Test( throw_exc());
} catch( Exception $e) {
echo 'Exception: ' .$e->getMessage();
}
?>
Expected result:
----------------
Exception: TEST_EXCEPTION
Actual result:
--------------
Destr
Exception: TEST_EXCEPTION
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2009-03-26 10:18 UTC] dmitry@php.net