2011-05-18 52 views
0

当我在View Helper中抛出异常时,它不会被ErrorController捕获。 (我收到一个关于未捕获异常的丑陋消息。)在Zend View Helpers中处理错误

我在某处读取ErrorController不会捕获插件中的错误。这同样适用于View Helpers吗?

在View Helper中处理异常的最佳策略是什么?

谢谢!

+0

你正在查看的应该不是处理数据,只是显示它。您应该在控制器中处理所有数据处理。 – Ashley 2011-05-18 13:23:56

+1

@Ashley传递给视图的数据可能不正确,因此,如果传递给它的数据无效,那么期望某种类型的数据的视图助手仍可能会抛出异常。所以我想说没有理由不在视图中出现异常。 – 2011-05-19 22:53:21

回答

1

事情是错误由ErrorHandler插件处理。所以,如果发生任何错误,iit必须在errorHandler调用后发生。所以,如果你的任何插件失败,那么errorHandler会被注册,它不会工作。 errorHandler的功能AFAIK没有其他例外。

1

对于为什么没有被抓住,以错误控制的原因,我不是100%肯定,但是这是我最好的猜测没有寻找到它更多:

视图从视图解析器插件渲染,或者Zend_Layout插件(如果它是布局的话),所以这可能就是为什么你会收到错误信息 - 正如你所说的那样,插件引发的异常不能正确地捕获到错误控制器中。

您可能应该将视图中的错误视为编程错误,因此您可能会抛出通用的“应用程序错误”类型的错误消息。你可以通过使用set_error_handler/set_exception_handler达到这个目的。