#45767 [Bgs]: Uncommon order and chained exceptions

[email protected] ("david at grudl dot com")
Newsgroups php.bugs
Message-ID <[email protected]>
 ID:               45767
 User updated by:  david at grudl dot com
 Reported By:      david at grudl dot com
 Status:           Bogus
-Bug Type:         Scripting Engine problem
+Bug Type:         Feature/Change Request
 Operating System: *
 PHP Version:      5.3.0alpha1
 New Comment:

This is not bug, of course, this is feature request.


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

[2008-08-10 09:54:40] [email protected]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

You're assigning an object to a variable, then overwrite the variable
with another and then echoing the variable holding the second object...

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

[2008-08-10 08:39:32] david at grudl dot com

Reproduce code:

<?php

class LowException extends Exception
{
}

class HighException extends Exception
{
}

$e = new LowException("File not found.");

$e = new HighException("Missing configuration.", 0, $e);

echo $e; // $e is HighException instance
?>


Expected result:
----------------
exception 'HighException' with message 'Missing configuration.' in
test.php:13 
Stack trace:
#0 {main}

Previous exception (or "Caused by") 'LowException' with message 'File
not found.' in test.php:11
Stack trace:
#0 {main}


Actual result:
---------------
exception 'LowException' with message 'File not found.' in test.php:11
Stack trace:
#0 {main}

Next exception 'HighException' with message 'Missing configuration.' in
test.php:13
Stack trace:
#0 {main}


Description:
------------
The first (and most appealing) line of textual output begins with
"exception 'LowException' with message ...", but the printed exception
is 'HighException'. This order makes output less evident.

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

[2008-08-09 20:45:15] [email protected]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.

Your code handles an exception, throws a new one, which results in an
"Fatal error: Uncaught exception", neither what you expect nor your
actual code, please provide a proper reproduce case and explain the
issue.

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

[2008-08-08 17:15:27] david at grudl dot com

Sorry - Expected result is Actual and Actual is Expected.

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

[2008-08-08 17:13:33] david at grudl dot com

Description:
------------
Chained exceptions are printed in uncommon order (from inner to outer
exception). This makes me confused :-(

Reference:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html#printStackTrace()

Reproduce code:
---------------
    try {
        throw new FileNotFoundException("File not found.");

    } catch (FileNotFoundException $e) {

        throw new ConfigException("Missing configuration.", 0, $e);
    }

echo $e; // note $e is ConfigException!


Expected result:
----------------
exception 'FileNotFoundException' with message 'File not found.' in
demo.php:8
Stack trace:
#0 demo.php(17): ...
#1 {main}

Next exception 'ConfigException' with message 'Missing configuration.'
in demo.php:21
Stack trace:
#0 demo.php(28): ....
#1 {main}

Actual result:
--------------
exception 'ConfigException' with message 'Missing configuration.' in
demo.php:21
Stack trace:
#0 demo.php(28): ....
#1 {main}

previous exception 'FileNotFoundException' with message 'File not
found.' in demo.php:8
Stack trace:
#0 demo.php(17): ...
#1 {main}



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


-- 
Edit this bug report at http://bugs.php.net/?id=45767&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.