Cet article décrit la gestion des exceptions du YII Framework. Partagez-le avec tout le monde pour référence, comme suit :
Les exceptions sont partout. En tant que programmeur, vous vivez pour créer ces exceptions, puis les corriger. Le framework YII encapsule les exceptions PHP, ce qui facilite la gestion des exceptions.
Méthode de configuration pour utiliser YII pour gérer les erreurs et les exceptions :
Vous pouvez définir YII_ENABLE_ERROR_HANDLER et YII_ENABLE_EXCEPTION_HANDLER comme vrai dans le fichier d'entrée.
Les exceptions sont levées
1. Déclenchez l'événement onError ou onException
2. Lancez une exception artificiellement. Par exemple,
throw new ExceptionClass('错误信息');//异常的基类 throw new CHttpException(404,'此页面不存在');//面向最终用户的类
Vue d'affichage des exceptions
Lorsqu'une erreur est transmise au composant CErrorHandler, il sélectionnera la vue appropriée pour afficher l'erreur.
CErrorHandler recherchera les vues appropriées pour afficher les messages d'erreur. L'ordre de recherche est le suivant :
1. WebRoot/themes/ThemeName/views/system : dans le répertoire système sous la vue de thème actuelle.
2. WebRoot/protected/views/system : Dans le répertoire système de la vue par défaut de l'application.
3. yii/framework/views : Dans le répertoire de vues standard fourni par Yii.
Utiliser l'action pour gérer les erreurs d'exception capturées.
Modifier le fichier de configuration :
/yii_dev/testwebap/protected/config/main.php 'errorHandler'=>array( // use 'site/error' action to display errors 'errorAction'=>'site/error', ),
est utilisé pour spécifier l'action pour gérer les erreurs. Par exemple, l'action d'erreur
actionError dans le contrôleur de site a le code par défaut suivant :
/** * 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); } }
Dans cette action, des informations détaillées sur l'erreur sont d'abord obtenues à partir de CErrorHandler::error. Si les informations obtenues ne sont pas vides, utilisez les informations renvoyées par CErrorHandler::error pour afficher la vue des erreurs. Les informations renvoyées par CErrorHandler::error sont un tableau avec la structure suivante :
code : code d'état HTTP (tel que 403, 500)
type : type d'erreur (tel que CHttpException, PHP Error) ; ;
message : message d'erreur ;
file : le nom du fichier PHP où l'erreur s'est produite ;
line : la ligne où l'erreur s'est produite ;
trace : informations sur la pile d'appels d'erreur ; source : le contexte du code où l'erreur s'est produite.