PHP 在异常堆栈跟踪中切断了部分长参数。如何告诉它不要?

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 的默认实现会截断长函数参数。

Ali*_*man 0

如果将可能失败的调用包装在一个try { ... } catch (Exception $e) { ... }块中,则可以根据需要显示尽可能多的异常错误消息。

您还可以控制代码对错误的处理方式,或者帮助将来更好地避免问题。