ID:               28464
 Comment by:       php at koteroff dot ru
 Reported By:      d at koteroff dot ru
 Status:           Open
 Bug Type:         Zend Engine 2 problem
 Operating System: *
 PHP Version:      5CVS-2004-05-21 (dev)
 New Comment:

Still waiting. :-)
Thanks for RC3.


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

[2004-05-21 02:03:15] d at koteroff dot ru

Description:
------------
Seems PHP does not support exception catching by parent interface (not
by parent classes). Why? This is a very powerful method to classify
exceptions in programs. 

Documentation says that while comparing type in catch block
'instanceof' operator is used, but following test shows that it is
wrong.

I found corresponding code in the source, zend_execute.c:2866, and it
searches for parent classes only. Why not use instanceof_function?

Do you have any perspectives about this problem? Can I wrote in my book
that PHP will support "interface catching" in the future?

Reproduce code:
---------------
<?
interface E {}
class A extends Exception implements E {}
try {
  throw new A();
} catch (E $e) {
  echo $e;
}
?>

Expected result:
----------------
prints exception data

Actual result:
--------------
Fatal error: Uncaught exception


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


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

Reply via email to