#36837 [NEW]: construct, call another classes fn, throw,catch,die. destructor is called

From: Date: Thu, 23 Mar 2006 19:47:13 +0000
Subject: #36837 [NEW]: construct, call another classes fn, throw,catch,die. destructor is called
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-94818@lists.php.net to get a copy of this message
From: tz at universale dot hu Operating system: Windows XP PHP version: 5.1.2 PHP Bug Type: *General Issues Bug description: construct, call another classes fn, throw,catch,die. destructor is called Description: ------------ Normally, if the constructor throws an exception, the destructor is not called reaching the end of the script. That's OK In the code attached, the destructor is called. There are two important parts of the code: 1. The exception must be generated by an object called from the foo's constructor. 2. It has to handle this exception, and call 'die' In this case, the foo-s destructor is called. Reproduce code: --------------- class foo { function __construct(){ new thrower( this ); } function __destruct(){ sleep( 5 ); } } class thrower { function __construct(){ try { throw new Exception( "foomessage" ); } catch ( Exception $e ){ die; } } } $f = new foo(); Expected result: ---------------- the destructor mustn't be called -- Edit bug report at http://bugs.php.net/?id=36837&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=36837&r=trysnapshot44 Try a CVS snapshot (PHP 5.1): http://bugs.php.net/fix.php?id=36837&r=trysnapshot51 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=36837&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=36837&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=36837&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=36837&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=36837&r=needscript Try newer version: http://bugs.php.net/fix.php?id=36837&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=36837&r=support Expected behavior: http://bugs.php.net/fix.php?id=36837&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=36837&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=36837&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=36837&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=36837&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=36837&r=dst IIS Stability: http://bugs.php.net/fix.php?id=36837&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=36837&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=36837&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=36837&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=36837&r=mysqlcfg

« previous php.bugs (#94818) next »