在例外情况下打印到查看

时间:2011-10-18 10:56:19

标签: php zend-framework exception

愚蠢的问题:在我的代码中,我收集了要在缓冲区中显示的所有消息。在下面的代码中,如果我的Try {}失败并直接进入Catch {},错误将被缓冲,但控制器将无法分配给视图,对吧?你们怎么解决这种情况?

MyController
{
//...

try {
  // ... do something

  $this->_messages[] = array('success', 'Thank You.');
}    
catch (Exception $e) {
  $this->_messages[] = array('error', 'Oops! There was an error.');
}

/**
 * flush all buffered messages to the view
 */
$flashmsg = $this->_flashMessenger->getMessages();
if (!empty($flashmsg)) $this->_messages[] = $flashmsg[0];      
$this->view->messages = $this->_messages;
}

1 个答案:

答案 0 :(得分:0)

我不喜欢这种做法! 在我的应用程序中,如果有东西进入catch意味着应用程序被破坏,则记录错误并重定向到查看类型“哎呀...抱歉”! 当我打印到Messages视图时,对于应用程序流的固有逻辑总是很重要的,我可以决定消息的类型(成功还是坏)而不是捕获!