ZF2 2.5 并不总是显示完整的错误消息

ZF2 2.5 not always showing full error message

提问人:Sepultura 提问时间:1/24/2017 最后编辑:WiltSepultura 更新时间:1/27/2017 访问量:342

问:

由于我将 Zend-Framework 更新到 2.5.3 版,将 PHP 更新到 7.0 版,因此如果发生异常,我并不总是收到完整的错误消息。

例如:发生异常,我获取异常消息的唯一方法是使用调试器(Class:ExceptionStrategy,行:121):

enter image description here

在前端,仅显示一般错误消息:

enter image description here我已经打开了PHP错误报告(在我的local.php和php.ini中):

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

奇怪的是,有时我会收到完整的错误消息,包括堆栈跟踪和调试所需的一切,但有时我只收到通用错误消息。

我希望它看起来像这样:

enter image description here

有人经历过这种行为吗?这正常吗?

异常 zend-framework2 php-7 错误报告

评论


答:

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)): ?>