action controller yang bertugas menangkap error terletak di SiteController di method actionError().
Di situ agan bisa nambah code kira2 seperti begini:
public function actionError()
{
if($error=Yii::app()->errorHandler->error)
{
if(Yii::app()->request->isAjaxRequest)
echo $error['message'];
else{
if($error['code']=='404') //kalau errornya adalah 404
$this->redirect('kemana');
else //selain itu tetap seperti biasanya
$this->render('error', $error);
}
}
}
Error Message tidak secara default dilempar yii ke controller site/error, tetapi bergantung setingan Controller/Action di /config/main.php, kebetulan disitu errorAction dilempar ke site/error, Bisa saja dilempar ke Controller/Action lainnya…
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
kalo menurut ane, lebih baik dibiarkan saja, karena error itu tampil ketika user memanggil controller tidak dengan cara resmi (click / redirect ). jadi biarkan saja user nakal itu tahu kalo kenakalannya tidak berujung apapun.