【发布时间】:2016-11-24 16:04:39
【问题描述】:
在 Extbase 扩展中,可能需要通知用户错误或异常。
在我的情况下,我必须解析来自潜在不良来源的一些数据。所以扩展必须验证这些数据。并且如果数据无效,则需要抛出异常,然后TYPO3可以处理。
但是,我只能找到有关异常和错误处理程序如何工作的信息,但找不到有关如何从扩展内部正确抛出异常的信息。
那么从 Extbase 扩展内部抛出异常的预期方法是什么?
预期结果
如果我产生语法错误,TYPO3 会显示类似以下的消息: (取自the core API reference。)
这就是我希望正确抛出的错误或异常的样子。
我尝试了什么
编辑:我尝试抛出这样的错误:
throw new \Exception('Invalid data');
但是,所有的前端显示都是
糟糕,发生错误!代码:20160721101726b5339896
产生错误的另一种可能方式:
$GLOBALS['TSFE']->pageNotFoundAndExit('Invalid data');
但是,这显示了一个页面未找到错误,而不是预期的异常。
【问题讨论】:
-
为什么不使用旧的php.net/manual/de/exception.construct.php 或异常处理插件?
-
@cptnk 对不起,我应该更详细的。已经试过了,没有给出预期的结果。附加我的问题。
-
啊,您可能只是在 LocalConfiguration 中设置了 displayErrors 来隐藏错误消息并将它们存储在 error.log 中。现在这就是你可能想要的行为。不如使用 flashmessanger 来代替?
-
但是正如我所期望的那样显示语法错误,如屏幕截图所示。
-
语法错误和退出是不同的。如果您的 PHP 检测到语法错误,它会在该点停止并打印错误消息。根据发生这种情况的时间,您可能已经拥有来自typo3的“错误样式”,但您可能从未接近处理错误的实际typo3应用程序。
标签: php exception typo3 typo3-7.6.x