当我在View Helper中抛出异常时,它不会被ErrorController捕获。 (我得到一条关于未被捕获的异常的丑陋信息。)
我在某处读到ErrorController没有捕获插件中的错误。这同样适用于View Helpers吗?
在View Helper中处理异常的最佳策略是什么?
谢谢!
答案 0 :(得分:1)
问题在于错误是由ErrorHandler插件处理的。因此,如果发生任何错误,iad HAS将在errorHandler调用之后发生。因此,如果您的任何插件先前失败,则注册errorHandler,它将无法正常工作。 errorHandler的功能AFAIK没有其他例外。
答案 1 :(得分:1)
由于它没有被错误控制器捕获的原因,我不是百分百肯定,但这是我最好的猜测,而不是更多地考虑:
视图是从ViewRenderer插件或Zend_Layout插件呈现的,如果它是一个布局,所以这可能就是你收到错误信息的原因 - 如你所说,从插件中抛出的异常没有被正确地捕获到错误中控制器。
您可能应该将视图中的错误视为编程错误,因此您可能会抛出一般的“应用程序错误”类型的错误消息。您可以通过使用set_error_handler / set_exception_handler
来实现此目的