xref: /PHP-7.2/tests/lang/039.phpt (revision 610c7fbe)
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===DONE===
43--EXPECTF--
44Catchable
45===DONE===
46