za4me
@za4me
Человек

Хорошая статья по исключениям php?

Добрый день, посоветуйте хорошую статью, чтение стандартной доки не сильно помогло в понимании принципа работы исключений.
Суть примера #2 самостоятельно не осилил.

Если я правильно понимаю, в Example 1 выполняется первый catch потому что case self::THROW_CUSTOM выбрасывает throw c экземпляром класса MyException.

В Example 2 следуя вышеуказанной логике выполняется второй catch потому что выбрасывает throw c экземпляром класса Exception.

Не могу понять принцип работы в Example 3. Так как в catch стандартным обработчиком исключения не указан MyException, его обрабатывает Exception? Несмотря на то что throw выбрасывает экземпляр MyException.
Но вывод строки $e все равно обрабатывает класс MyException, функцией __toString()
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
@Wol_fi
php, js, mysql, highload
в блоке catch указывается не только класс, но и любые наследники. А поскольку MyException наследуется от Exception, то конструкция catch(Exception $e) его отлавливает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы