Я создаю некоторую конечную точку api и пытаюсь работать с исключением журнала, поэтому я намеренно удаляю базу данных и запускаю конечную точку, чтобы получить PDOException.PHP Необлученное исключение дает больше деталей, чем пойманное исключение
Мой вопрос, если я не поймал исключение, когда я бежал конечную точку через почтальона, он показывает мне гораздо более подробное сообщение, трассировки стека, и т.д. (около 1000 строк),
, но если я поймал исключение с помощью try catch block примерно так
catch (\Exception $exception) {
print_r($exception->__toString());
print_r("\n\n");
die;
}
Это гораздо меньше деталей. Почему это? и есть ли в любом случае печатать те же точные данные, которые мы получили, когда мы не поймали исключение?
Параметр '$ exception' объект содержит гораздо больше информации, чем визуализируется магическим __toString() метод, просто посмотрите на фактические [свойства и методы объекта] (HTTP: //www.php. net/manual/en/class.exception.php) like [getTrace()] (http://www.php.net/manual/en/exception.gettrace.php) –
Посмотрите на 'debug_backtrace()'. Что касается причины, вероятно, что Xdebug, вероятно, включен, что является расширением PHP, которое будет пробивать результаты этой функции, чтобы дать вам трассировку стека. –
И не нужно явно вызывать '__toString()'; вся точка магического метода заключается в том, что он называется неявно (магически), если вы пытаетесь эхо-объект –