Кстати, хороший вопрос, почему при недоступности БД не выполняется пользовательский error.php? Вместо этого видим стандартное сообщение: "CDbException. ActiveRecord требует компонент приложения "db" CDbConnection". Я не хотел бы выдавать пользователю никаких технических текстов, как перехватить такие эксепшены?
Все должно работать, проверьте определяется ли где YII_DEBUG в других местах.
Еще может быть, что у вас в контроллере используются beforeAction/afterAction в которых идет работа с базой данных, я бы предложил их отключить для site/error. У меня так в коде. Вместо // … идет работа с бд, если убрать проверку на ‘site/error’, то вылезает стандартная страница с ексепшеном.
public function beforeAction($action)
{
if ($this->id == 'site' && $action->id == 'error')
{
return true;
}
// ...
}