この記事では、YII フレームワークの例外処理について説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
例外はどこにでも存在します。プログラマーは、これらの例外を作成し、それを修正するのが仕事です。 YII フレームワークは PHP 例外をカプセル化し、例外処理を容易にします。
YII を使用してエラーと例外を処理するための設定方法:
例外を引き起こす状況
1 で YII_ENABLE_ERROR_HANDLER と YII_ENABLE_EXCEPTION_HANDLER を true として定義できます。例外をスローします。たとえば、
throw new ExceptionClass('错误信息');//异常的基类 throw new CHttpException(404,'此页面不存在');//面向最终用户的类
例外表示ビュー
エラーがコンポーネント CErrorHandler に転送されると、エラーを表示するための適切なビューが選択されます。
CErrorHandler は、エラー メッセージを表示するための適切なビューを検索します。検索順序は次のとおりです。 1. WebRoot/themes/ThemeName/views/system: 現在のテーマ ビューの下のシステム ディレクトリ内。2. WebRoot/protected/views/system: アプリケーションのデフォルト ビューのシステム ディレクトリ内。
3. yii/framework/views: Yii が提供する標準のビュー ディレクトリ内。
キャプチャされた例外エラーを処理するアクションを使用します。
設定ファイルを変更します:
/yii_dev/testwebap/protected/config/main.php 'errorHandler'=>array( // use 'site/error' action to display errors 'errorAction'=>'site/error', ),
は、エラーを処理するアクションを指定するために使用されます。例えば、サイトコントローラーのエラーアクション
actionErrorのデフォルトコードは以下の通りです/** * This is the action to handle external exceptions. */ public function actionError() { if($error=Yii::app()->errorHandler->error) { if(Yii::app()->request->isAjaxRequest) echo $error['message']; else $this->render('error', $error); } }このアクションでは、まずCErrorHandler::errorから詳細なエラー情報を取得します。取得した情報が空でない場合は、CErrorHandler::error によって返された情報を使用してエラー ビューをレンダリングします。 CErrorHandler::error によって返される情報は、次の構造の配列です。
code: HTTP ステータス コード (403、500 など);
file: エラーが発生した PHP ファイルの名前;
line: エラーが発生した行;source: エラーが発生したコードのコンテキスト。
例外ログ
エラーが発生した場合、エラーレベルのエラーメッセージが記録されます。エラーが PHP の警告または通知によって引き起こされた場合、メッセージは php カテゴリに記録されます。エラー メッセージがキャッチされなかった例外によって引き起こされた場合、カテゴリは例外.ExceptionClassName になります ( CHttpException の場合、その statusCode も追加されます)。カテゴリ名に)。開発者はこれらのレコードを使用して、アプリケーション実行時のエラー メッセージと例外処理メソッドを監視できます。
この記事が Yii フレームワークに基づいた PHP プログラムの設計に役立つことを願っています。
YII Framework チュートリアルの例外処理の詳細については、PHP 中国語 Web サイトを参照してください。