我建立了一些API端点,并尝试记录异常,所以我有意删除了数据库并运行端点以获取PDOException。
我的问题是,如果我没有捕获异常,当我通过Postman运行端点时,它会显示给我更详细的消息、堆栈跟踪等信息(约1000行),
但如果我使用try catch块捕获异常,就像这样:
catch (\Exception $exception) {
print_r($exception->__toString());
print_r("\n\n");
die;
}
为什么细节少了那么多?是否有办法打印与未捕获异常时完全相同的数据?
$exception
对象包含的信息比魔术方法__toString()
渲染的信息要多得多,只需查看实际的对象方法和属性,例如 getTrace()。 - Mark Baker__toString()
方法;魔术方法的整个意义在于,如果你尝试输出对象,它会被隐式(神奇地)调用。 - Mark Bakerecho $exception->getTraceAsString();
等。 - Mark Baker