#27283 [Opn->Ver]: Exception not caught if more than two catch blocks are used
| From: | sniper@php.net | Date: | Tue, 17 Feb 2004 11:11:31 +0000 |
| Subject: | #27283 [Opn->Ver]: Exception not caught if more than two catch blocks are used | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-55067@lists.php.net to get a copy of this message | ||
ID: 27283
Updated by: sniper@php.net
Reported By: benjcarson at digitaljunkies dot ca
-Status: Open
+Status: Verified
Bug Type: Zend Engine 2 problem
Operating System: Linux
PHP Version: 5CVS-2004-02-16 (dev)
Previous Comments:
------------------------------------------------------------------------
[2004-02-16 21:09:43] benjcarson at digitaljunkies dot ca
Description:
------------
If an exception is thrown within a try block and more than two catch
blocks follow, the exception may not be caught. If the exception
matches either of the first two catch blocks then the exception will be
caught. However, if the exception does not match the first two catch
blocks, it will skip any remaining catch blocks and remain uncaught.
In the code below, the exception is caught properly if the second catch
block is commented out. Once it is included again though, the
exception is not caught.
Reproduce code:
---------------
<?php
class Ex1 extends Exception { }
class Ex2 extends Exception { }
class Ex3 extends Exception { }
try {
throw new Ex3("Ex3");
} catch (Ex1 $e) {
echo ("Ex1: " . $e->getMessage() ."\n");
} catch (Ex2 $e) {
echo ("Ex2: " . $e->getMessage() ."\n");
} catch (Exception $e) { // Note: trying to catch Ex3 also fails
echo ("Exception: " . $e->getMessage() . "\n");
}
exit(0);
?>
Expected result:
----------------
Execption: Ex3
Actual result:
--------------
Fatal error: Uncaught exception 'Ex3' with message 'Ex3'
exception.php:8
Stack trace:
#0 {main}
thrown in exception.php on line 8
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27283&edit=1