Ale*_*lex 6 php error-handling
以下是 PHP 7 运行时错误消息的示例:
PHP 致命错误:未捕获的错误:在 predis.php:4168 中找不到类“Predis\Connection\ConnectionException”
堆栈跟踪:
#0 /var/www/api/libraries/predis/predis.php(4455): Predis\Connection\AbstractConnection->onConnectionError('Error while rea...')
请注意标记为 #0 的第一个堆栈跟踪行中的省略号:
('错误而重新...')
如果没有被切断,最重要的信息就会在那里。其他错误消息也有同样的问题,通常会切断消息中非常有价值的部分。
是否有设置可用于在堆栈跟踪中打印更多信息?我们使用的 PHP 的确切版本是 7.1.1。
更新我们遇到的确切问题在如何禁用 PHP 在异常堆栈跟踪中切断部分长参数中描述?. 这个问题可以关闭一个骗局。这个想法是捕获异常,调用 Exception::getTrace() 并手动构造错误消息。异常可以在全局处理程序中或在每个 try/catch 块中捕获。Exception::getTraceAsString 的默认实现会截断长函数参数。
如果将可能失败的调用包装在一个try { ... } catch (Exception $e) { ... }块中,则可以根据需要显示尽可能多的异常错误消息。
您还可以控制代码对错误的处理方式,或者帮助将来更好地避免问题。