Yii異常処理


静的ページを表示コントロールに次のコードを追加します(IndexControllerなど).
public function actions()
{
return array(
//page action renders "static"pages stored under 'protected/views/site/pages'
//They can be accessed via: index.php?r=site/page&view=FileName
'page'=>array(
'class'=>'CViewAction',
),
);
}
protected/views/controllerID/pagesにabout.phpなどの静的ページを追加
IndexControllerの場合、対応するアドレスはprotected/views/site/pagesです
アクセスアドレス index.php?r=index/page&view=about自分が設定した静的ページへ
エラー例外処理
デフォルトでは、Yiiは例外処理をCApplication::handleExceptionに割り当て、エラー処理をCApplication::handleErrorに割り当てますが、YII_ENABLE_EXCEPTION_HANDLER、YII_ENABLE_ERROR_HANDLERの2つの定数をエントリファイルで定義することで、Yiiの例外と誤引き継ぎメカニズムの使用を禁止できます.
構成ではerrorHandlerコンポーネントのerrorActionルーティング情報方式が定義されています(componentsで設定)
このアクションでは、Yii::app()->errorHandler->errorでエラー情報を取得できます.
'errorHandler'=>array(
    //use 'error/error' action to display errors
    'errorAction'=>'error/error',
),
デバッグモードの場合、exceptionビューが直接レンダリングされ、エラーが表示されます.次のパスで検索されます.
protected/views/system/exception.php
YII_PATH/views/exception.php
デフォルトではviews/systemディレクトリはアプリケーションで定義されていないため、システムフレームワークに付属するビューファイルが使用されます.最終的に含まれるファイルはYiiフレームワークのviews/exception.phpになります.デバッグモードでカスタム例外ページを使用する場合は(一般的にはあまり意味がないかもしれません)を選択すると、プロファイルprotected/views/system/exception.phpが必要です.使用可能な変数は$dataです.
 
非デバッグモードでは、次のように処理されます.
1.プロファイルでerrorHandlerコンポーネントのerrorActionルーティング情報が定義されている場合は、「推奨」を直接実行します.そうでない場合は、手順2を実行します.
2.errorビューをロードして、次のパスで検索します(最初に検索したファイルが使用されます) 
protected/views/system/zh_cn/error500.php
protected/views/system/error500.php
protected/views/system/zh_cn/error.php
protected/views/system/error.php
YII_PATH/views/zh_cn/error500.php
YII_PATH/views/error500.php
YII_PATH/views/zh_cn/error.php
YII_PATH/views/error.php
Yiiエラーコードパラメータ:
  • code:HTTPステータスコード(例えば403,500);
  • type:エラータイプ(例: CHttpException,  PHP Error );
  • message:エラーメッセージ;
  • file:エラーが発生したPHPファイル名;
  • line:エラーのある行;
  • trace:誤った呼び出しスタック情報;
  • source:エラーが発生したコードのコンテキスト.