xref: /PHP-8.0/tests/lang/039.phpt (revision f8d79582)
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