PHP: <?php class MyException extends Exception { // некоторые изменения класса Exception } try { fopen('file.txt'); // файл не существует. здесь бросается исключение MyException c помощью set_error_handler() } catch(Exception $e) { echo $e; } catch(MyException $m) { echo $m; } ?> Вопрос: Почему исключение перехватывается в первом блоке catch и как сделать чтобы оно перхватывалось во втором?
Вот корректная запись: PHP: <?php try { fopen('file.txt'); // файл не существует. здесь бросается исключение MyException c помощью set_error_handler() } catch(MyException $m) { echo $m; } catch(Exception $e) { echo $e; } ?>
то есть более общее исключение надо писать позже. Если а наследуется от б, а б от в, то надо сначала писать а, потом б, потом в.