提问人:Sepultura 提问时间:1/24/2017 最后编辑:WiltSepultura 更新时间:1/27/2017 访问量:342
ZF2 2.5 并不总是显示完整的错误消息
ZF2 2.5 not always showing full error message
问:
由于我将 Zend-Framework 更新到 2.5.3 版,将 PHP 更新到 7.0 版,因此如果发生异常,我并不总是收到完整的错误消息。
例如:发生异常,我获取异常消息的唯一方法是使用调试器(Class:ExceptionStrategy,行:121):
在前端,仅显示一般错误消息:
我已经打开了PHP错误报告(在我的local.php和php.ini中):
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
奇怪的是,有时我会收到完整的错误消息,包括堆栈跟踪和调试所需的一切,但有时我只收到通用错误消息。
我希望它看起来像这样:
有人经历过这种行为吗?这正常吗?
答:
0赞
Wilt
1/25/2017
#1
不确定这是否导致了您的问题,但无论如何都值得一提。
您必须配置视图管理器以显示/呈现异常。您可以在此处的 ZF2 文档中阅读有关如何配置视图渲染器的更多信息。
视图管理器配置中有一个专用密钥:
'display_exceptions' => true,
评论
0赞
Sepultura
1/27/2017
我已经将display_exceptions设置为 true。即使异常发生在相同的操作中,它有时也会给我完整的堆栈跟踪,有时不会
2赞
Sepultura
1/27/2017
#2
好的,现在我找到了。问题出在我的错误模板中,因为有一个 if 语句检查异常是否是 Exception 的实例:
<?php if(isset($this->exception) && $this->exception instanceof Exception): ?>
由于 PHP 7 报告了大多数错误,并报告了错误异常,因此我不得不像这样扩展 if 语句:
<?php if(isset($this->exception) && ($this->exception instanceof Exception || $this->exception instanceof Error)): ?>
上一个:Eclipse,删除覆盖错误
评论