当请求的页面不存在时,yii会抛出一个CHttpException的异常,异常code为404,那么yii中是怎么处理该类异常的呢,有下面三种方法:
1、啥也不用做,yii会自己处理
当抛出该类异常时,yii会默认去渲染framework/view/下的 errorxxx.php(error404.php)模板文件
2、在protected/views/system下新建errorxxx.php,yii会去渲染该文件
3、配置异常处理器
在配置文件main.php中添加如下配置,设置异常处理控制器为site/error
'errorHandler'=>array( // use 'site/error' action to display errors 'errorAction'=>'site/error', ),
public function actionError() { if($error=Yii::app()->errorHandler->error) {print_r($error); if(Yii::app()->request->isAjaxRequest) echo $error['message']; else $this->render('error', $error); } }
<?php $this->pageTitle=Yii::app()->name . ' - Error'; $this->breadcrumbs=array( 'Error', ); ?> <h2>Error <?php echo $code; ?></h2> <div class="error"> <?php echo CHtml::encode($message); ?> </div>