2011-10-18 4 views
1

愚かな質問:私のコードでは、バッファ内のビューに表示されるすべてのメッセージを収集します。私の試し{}が失敗し、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

私はこのアプローチが嫌いです! 私のアプリケーションで何かがキャッチされると、アプリケーションが壊れていることを意味するので、エラーをログに記録し、タイプ "Oops ... Sorry"を表示するようにリダイレクトします! メッセージビューに印刷するとき、メッセージフローの種類(成功か悪いか)を決めるのに、アプリケーションフローの本質的なロジックにとって常に重要です。

+0

ここで、データベースがビジーでクエリがタイムアウトすることがあります。この場合、例外が生成されますが、アプリケーションを終了する必要はありませんが、単にクライアントに再試行するよう通知するだけです。アプリケーションを自動化して、3倍の試行をしてから実際におっとりしていない限り...面白いです。ありがとう。 –

関連する問題