Этот код с точностью до смысла повторяет тот, который я встретил в живом проекте.
[php]
<?php
class MyException extends Exception {
}
class TestException {
public static function testExc() { throw new MyException('MyException '); }
}
class Test2Exception {
public static function test2Exc() { TestException::testExc(); }
}
class Main {
public function mainMethod() { try { Test2Exception::test2Exc(); } catch (Exception $e) { echo $e->getMessage().PHP_EOL; } }
}
$m = new Main();
$m->mainMethod();
[/php]
Вопрос: сработает ли catch и что выведет echo? Вопрос простой, но при том, что классы расположены в разных файлах приходится задуматься о том, зачем вообще нужен был MyException и что автор кода хотел нам сказать, когда делал catch на Exception, а не на MyException.
Прошлые записи
- Перевод - Почему бумага формата А4 имеет размер 297 мм на 210 мм?
- Эволюция веб-приложений. От раздачи статики до Serverless
- Эволюция веб-приложений. От статичного HTML до Single Page Application и Progressive Web Application
- Переезд в Калининград
- Была ли спецоперация на Украине неизбежна?
- О serverless технологии для чатботов
- Свободное время на улучшение блога
- О жизни в Калининграде спустя год
- Продажа гаража из другого города
- В Калининграде спустя полгода
- О Регине Тодоренко и насилии