微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP在异常堆栈跟踪中切断了部分长参数.怎么告诉它不要?

参见英文答案 > How to disable PHP cutting off parts of long arguments in exception stack trace?                                    2个
下面是PHP 7运行时的错误消息示例:

PHP Fatal error: Uncaught Error: Class
‘Predis\Connection\ConnectionException’ not found in predis.PHP:4168

Stack trace:

#0 /var/www/api/libraries/predis/predis.PHP(4455):
Predis\Connection\AbstractConnection->onConnectionError(‘Error while
rea…’)

注意标记为#0的第一个堆栈跟踪线中的省略号:

(‘Error while rea…’)

如果没有被切断的话,这就是最重要的信息.其他错误消息具有相同的问题,通常会切断消息中非常有价值的部分.

是否有可用于在堆栈跟踪中打印更多信息的设置?我们使用的PHP的确切版本是7.1.1.

更新我们所遇到的确切问题在How to disable PHP cutting off parts of long arguments in exception stack trace?中有所描述.这个问题可以被关闭.想法是捕获异常,调用Exception :: getTrace()并手动构造错误消息.可以在全局处理程序或每个try / catch块中捕获异常. Exception :: getTraceAsstring的认实现截断了长函数参数.

解决方法

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

您还可以控制代码错误所做的操作,或者有助于在将来更好地避免此问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐