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){…}块中包装可能失败的调用,则可以根据需要显示尽可能多的异常错误消息.

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...