我构建了一些api端点,并尝试处理日志记录异常,因此我故意删除数据库并运行端点以获取PDOException。
我的问题是,如果我没有发现异常,当我通过邮递员运行端点时,它会向我显示更详细的消息,堆栈跟踪等(约1000行),
但是如果我用try catch阻止这样的异常
catch (\Exception $exception) {
print_r($exception->__toString());
print_r("\n\n");
die;
}
它的细节要少得多。这是为什么?无论如何打印出我们没有发现异常的相同数据?
答案 0 :(得分:4)
你拥有所有这些数据。异常对象有很多方法:
try {
// something throwing exception
} catch (\Exception $e) {
echo $e->getCode() . "\n";
echo $e->getFile() . "\n";
echo $e->getLine() . "\n";
echo $e->getMessage() . "\n";
echo $e->getTraceAsString() . "\n";
}
详细了解Exception
课程:
http://php.net/manual/en/class.exception.php
答案 1 :(得分:1)
你总是可以在catch块中抛出异常,让PHP处理。这将允许您对异常执行某些操作,然后继续默认行为。
catch (\Exception $exception) {
// Do something with the exception
throw $exception;
}