0

我正在使用Slim 框架

我的应用程序中的大多数 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 块中,但这并不能解决问题。

4

1 回答 1

0

问题是 Slim 自己在处理异常(某种我还没有追踪到的默认行为)。

我已经将我的代码包装在 Try/Catch 块中,所以当 Slim 捕获 PHP 错误时,它会抛出它自己的异常,然后我会在我的 Catch 块中输出。如果我删除我的 Catch 块,Slim 它们会像往常一样输出包含堆栈的完整错误消息。

这肯定意味着我没有完全正确地使用 Slim,但这是一个不同的问题。

于 2013-08-24T22:54:18.643 回答