Чтобы перехватить все CDbConnection ошибки, вам нужно включить обработчик ошибок в config / main.php
'components'=>array('errorHandler'=>array('errorAction'=>'site/error', ), ),
Затем в вашем контроллере (или абстрактном базовом классе для всех ваших контроллеров) вам нужно определить действие для выполнения перенаправления.
public function actionError() {
if($error=Yii::app()->errorHandler->error)
if ( CDbException == $error->type) {
$this->redirect(array("site/error_message")); }
// call the parent error handler, but something doesn't feel right about this:
else
parent::actionError(); }
В качестве альтернативы вы можете просто сделать ваши собственные представления:
public function actionError() {
if($error=Yii::app()->errorHandler->error)
if ( CDbException == $error->type) {
$this->render('error', $error); } }
Подробнее см. Yii docs .