Heim > php教程 > PHP开发 > Hauptteil

Detaillierte Erläuterung der Ausnahmebehandlung im YII Framework-Tutorial

高洛峰
Freigeben: 2016-12-27 14:13:28
Original
1493 Leute haben es durchsucht

Dieser Artikel beschreibt die Ausnahmebehandlung des YII Framework. Teilen Sie es als Referenz mit allen:

Ausnahmen gibt es überall. Als Programmierer leben Sie davon, diese Ausnahmen zu erstellen und sie dann zu beheben. Das YII-Framework kapselt PHP-Ausnahmen und erleichtert so die Ausnahmebehandlung.

Konfigurationsmethode zur Verwendung von YII zur Behandlung von Fehlern und Ausnahmen:

Sie können YII_ENABLE_ERROR_HANDLER und YII_ENABLE_EXCEPTION_HANDLER in der Eintragsdatei als wahr definieren.

Ausnahmen werden ausgelöst

1. Das Ereignis onError oder onException auslösen

2. Eine Ausnahme künstlich auslösen. Beispiel:

throw new ExceptionClass('错误信息');//异常的基类
throw new CHttpException(404,'此页面不存在');//面向最终用户的类
Nach dem Login kopieren

Ausnahmeanzeigeansicht

Wenn ein Fehler an die Komponente CErrorHandler weitergeleitet wird, wählt diese die entsprechende Ansicht zur Anzeige des Fehlers aus.
CErrorHandler sucht nach geeigneten Ansichten, um Fehlermeldungen anzuzeigen:

1. WebRoot/themes/ThemeName/views/system: Im Systemverzeichnis unter der aktuellen Designansicht.
2. WebRoot/protected/views/system: Im Systemverzeichnis der Standardansicht der Anwendung.
3. yii/framework/views: Im von Yii bereitgestellten Standardansichtsverzeichnis.

Verwenden Sie die Aktion, um erfasste Ausnahmefehler zu behandeln.

Ändern Sie die Konfigurationsdatei:

/yii_dev/testwebap/protected/config/main.php
    'errorHandler'=>array(
// use 'site/error' action to display errors
      'errorAction'=>'site/error',
    ),
Nach dem Login kopieren

wird verwendet, um die Aktion zur Behandlung von Fehlern anzugeben. Beispielsweise hat die Fehleraktion
actionError im Site-Controller den folgenden Standardcode:

/**
 * 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);
  }
}
Nach dem Login kopieren

Bei dieser Aktion werden zunächst detaillierte Fehlerinformationen von CErrorHandler::error abgerufen. Wenn die erhaltenen Informationen nicht leer sind, verwenden Sie die von CErrorHandler::error zurückgegebenen Informationen, um die Fehleransicht darzustellen. Die von CErrorHandler::error zurückgegebenen Informationen sind ein Array mit der folgenden Struktur:

Code: HTTP-Statuscode (z. B. 403, 500);
Typ: Fehlertyp (z. B. CHttpException, PHP Error) ;
Nachricht: Fehlermeldung;
Datei: der Name der PHP-Datei, in der der Fehler aufgetreten ist;
Trace: Informationen zum Fehleraufruf; Quelle: der Kontext des Codes, in dem der Fehler aufgetreten ist.

Ausnahmeprotokoll

Wenn ein Fehler auftritt, wird eine Fehlermeldung auf Fehlerebene aufgezeichnet. Wenn der Fehler durch eine PHP-Warnung oder einen PHP-Hinweis verursacht wird, wird die Nachricht in der PHP-Kategorie aufgezeichnet. Wenn die Fehlermeldung durch eine nicht abgefangene Ausnahme verursacht wird, lautet die Kategorie „Exception.ExceptionClassName“ (bei CHttpException wird auch deren Statuscode angehängt). zum Kategorienamen). Entwickler können diese Datensätze verwenden, um Fehlermeldungen und Ausnahmebehandlungsmethoden zu überwachen, wenn die Anwendung ausgeführt wird.

Ich hoffe, dass dieser Artikel für jedermann beim PHP-Programmdesign basierend auf dem Yii-Framework hilfreich sein wird.

Ausführlichere Erläuterungen zur Ausnahmebehandlung im YII Framework-Tutorial und verwandten Artikeln finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage