1--TEST-- 2Catch Interfaces 3--FILE-- 4<?php 5 6interface Catchable 7{ 8} 9 10class MyException extends Exception implements Catchable 11{ 12 function __construct($errstr, $errno, $errfile, $errline) 13 { 14 parent::__construct($errstr, $errno); 15 $this->file = $errfile; 16 $this->line = $errline; 17 } 18} 19 20function Error2Exception($errno, $errstr, $errfile, $errline) 21{ 22 throw new MyException($errstr, $errno, $errfile, $errline); 23} 24 25$err_msg = 'no exception'; 26set_error_handler('Error2Exception'); 27 28try 29{ 30 $con = fopen('/tmp/a_file_that_does_not_exist','r'); 31} 32catch (Catchable $e) 33{ 34 echo "Catchable\n"; 35} 36catch (Exception $e) 37{ 38 echo "Exception\n"; 39} 40 41?> 42--EXPECT-- 43Catchable 44