在异常期间打印到视图


Printing to View during an 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;
}

我不喜欢这种方法!在我的应用程序中,如果某些东西进入catch意味着应用程序被破坏,那么记录错误并重定向到视图类型"Oops…对不起"!当我打印到Messages视图时,总是对应用程序流的内在逻辑有重要意义,为我决定消息的类型(成功或失败)而不是捕获!