Heim >php教程 >PHP开发 >Detaillierte Erläuterung der Ausnahmebehandlung im YII Framework-Tutorial

Detaillierte Erläuterung der Ausnahmebehandlung im YII Framework-Tutorial

高洛峰
高洛峰Original
2016-12-27 14:13:281531Durchsuche

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,'此页面不存在');//面向最终用户的类

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',
    ),

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);
  }
}

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!

Stellungnahme:
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