ID:               33598
 Updated by:       [EMAIL PROTECTED]
 Reported By:      carlo dot razzeto at mtginfo dot com
-Status:           Verified
+Status:           Open
-Bug Type:         Class/Object related
+Bug Type:         Documentation problem
 Operating System: *
 PHP Version:      5CVS-2005-08-03
 New Comment:

Throwing exceptions in __desctruct() is not allowed.
Should be documented..



Previous Comments:
------------------------------------------------------------------------

[2005-07-07 01:46:59] carlo dot razzeto at mtginfo dot com

Description:
------------
When performing an operation which throws an exception in the
__destruct method of a class, the following Error is generated

Fatal error: Exception thrown without a stack frame in Unknown on line
0

I have only observed this happening when an object goes out of scope
because the script has ended. Rather than generating a scripting engine
error, PHP should allow for the script to deal with the error, for
instance when an exception handler has been specified by the script.

Reproduce code:
---------------
    class test {
        function __construct() {
            echo "Construct\n";
        }
        
        function greet() {
            echo "Hello World\n";
        }
        
        function __destruct() {
            echo "Destruct\n";
            throw new Exception( 'test' );
        }
    }
    
    $test = new test();
    $test->greet();

Expected result:
----------------
Construct
Hello World
Destruct

Fatal error: Uncaught exception 'Exception' with message 'test' in
/home/crazzeto/test.php:13
Stack trace:
#0 /home/crazzeto/test.php(13): test::__destruct()
#1 /home/crazzeto/test.php(20): test::__destruct()
#2 /home/crazzeto/test.php(20): unknown()
#3 {main}
  thrown in /home/crazzeto/test.php on line 13


Actual result:
--------------
[EMAIL PROTECTED] crazzeto]$ php test.php
Construct
Hello World
Destruct

Fatal error: Exception thrown without a stack frame in Unknown on line
0



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=33598&edit=1

Reply via email to