我正在使用Slim Framework。
我的应用程序中的大多数PHP错误都会输出正常的PHP错误消息
输出调用堆栈错误的示例代码:
echo 'missing semicolon at eol'
错误输出:
Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /data/www/app/routes/companies_routes.php on line 737
Call Stack:
0.0002 637144 1. {main}() /data/www/html/index.php:0
但是其他错误(可能只是通知)输出的有限消息没有行号,文件名或调用堆栈。这使得调试这些错误非常耗时。
包含输出有限错误消息的错误的代码
echo $an_undefined_variable;
有限信息
Undefined variable: an_undefined_variable
我无法弄清楚发生了什么。我以前从未遇到过这个问题。我怀疑它与Slim处理PHP错误的方式有关。我尝试在Try / Catch块中包装这些错误,但这并没有解决问题。
答案 0 :(得分:0)
问题是Slim本身正在处理异常(我还没有找到某种默认行为)。
我的代码包含在Try / Catch块中,所以当Slim捕获PHP错误时,它会抛出它自己的Exception,然后我在Catch块中输出。如果我删除了我的Catch块,Slim它们会像往常一样输出它自己的包含堆栈的完整错误消息。
这肯定意味着我没有使用Slim,但这是一个不同的问题。