ID:               28290
 Updated by:       [EMAIL PROTECTED]
 Reported By:      arnoud at rattink dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         Zend Engine 2 problem
 Operating System: SuSE Linux 8.2
 PHP Version:      5.0.0RC2
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.0-win32-latest.zip

Can't reproduce, seems to be fixed.


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

[2004-05-14 00:01:42] arnoud at rattink dot com

That is not true. Example: 
 
<? 
function f() { throw new Exception("I am an exception"); 
} 
 
try 
{ 
    $v = f(); 
    echo "This is not supposed to get printed\n"; 
} 
catch(Exception $e) { 
    echo "caught exception\n"; 
} 
?> 
 
This just prints 'caught exception'. That is entirely 
correct. Now if you were right, then the above code should 
execute both echos. It does not, so is that a bug? I say 
it's a catch 22. 
 
Either this program, or the one with the 'eval' works out 
wrong. Personally I believe the whole idea of 'throwing an 
exception' is that you bypass all intermediate code and 
land straight into the 'catch' block. At least, that's how 
it works in C++ and Java.

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

[2004-05-11 05:10:37] vkatragadda at email dot com

hello, i dont think this is a bug. i believe the line after eval gets
executed by default. i think everything in the try{} block is supposed
to get executed, and then the catch{} block is called...

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

[2004-05-11 05:07:44] vkatragadda at email dot com

hello, i dont think this is a bug. i believe the line after eval gets
executed by default. i think everything in the try{} block is supposed
to get executed, and then the catch{} block is called...

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

[2004-05-05 23:47:01] arnoud at rattink dot com

Description:
------------
The code below prints GRRRRRRRR. This is incorrect as the 
throwing of the exception is supposed to bring us 
immediately to the catchblock. It is also inconsistent, 
since I can replace the eval with just  
$f = AAAAAARRRRRRRRG(); 
and then it skips the echo. 
 

Reproduce code:
---------------
<?
function AAAAAARRRRRRG(){
    throw new Exception("AAAAAARRRRRRG");
}

try {
    eval('$f = AAAAAARRRRRRG();');
    echo "GRRRRRRRR\n";
}
catch(Exception $e) {
    echo "Exception caught nice and clean\n";
}
?>

Expected result:
----------------
I do not expect to see GRRRRRRRR. 

Actual result:
--------------
GRRRRRRRR 
Exception caught nice and clean 
 


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


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

Reply via email to