Maison  >  Article  >  développement back-end  >  Explication détaillée des exemples de mécanismes de gestion des erreurs PHP

Explication détaillée des exemples de mécanismes de gestion des erreurs PHP

怪我咯
怪我咯original
2017-07-07 10:21:161124parcourir

Cet article présente principalement les informations pertinentes sur le mécanisme de gestion des erreurs PHP. Il est très détaillé et très pratique. Les amis qui en ont besoin peuvent s'y référer

Dans le processus quotidien de développement de projet, il y en aura toujours. Si nous ne gérons pas relativement bien les erreurs d'exception inattendues, le programme n'aura pas l'air professionnel et pourra devenir une information efficace permettant à d'autres d'attaquer le système ; certaines exceptions d'erreur mettront fin à l'exécution du script. S'il n'y a pas de message d'erreur, nous ne pouvons que regarder. au code dès le début. Il est terrible pour nous de savoir qu'il y a des centaines ou des milliers de lignes de code dans le projet, alors comment développer le projet pendant le processus de développement du projet, et les gérer rapidement ? par conséquent. Cet article est basé sur ma propre compréhension des erreurs et de la Gestion des exceptions, et je le partagerai avec tout le monde pour apprendre et communiquer entre eux, et servir de mémo.

Gestionnaire d'erreurs système :

PHP Dans des circonstances normales, les erreurs seront générées normalement, mais dans certains frameworks, cela peut affecter la sortie d'erreur, peut-être le framework dont il dispose son propre mécanisme de traitement, ou il peut être traité dans le code. Généralement, ces paramètres de fonction sont :

1.error_reporting(); level

error_reporting(report_level)

Si le niveau du paramètre n'est pas spécifié, le niveau de rapport d'erreurs actuel sera renvoyé. Les éléments suivants sont des valeurs possibles de niveau :

32 >64PHP

>

Valeur

Constante

Description

1

E_ERROR

Erreur d'exécution FATALE. Cette erreur ne peut pas être recyclée. L'exécution du script a été interrompue.

2

E_WARNING

Avertissement d'exécution non fatal. L'exécution du script n'est pas interrompue.

4

E_PARSE

Erreur d'analyse du temps de compilation. L'analyse ne devrait générer que des erreurs

8

E_NOTICE

Runtime notification. Le script trouvé peut être un bug, mais cela peut généralement se produire lors de l'exécution d'un script

16

E_CORE_ERROR

Erreur fatale au démarrage de PHP. C'est comme le E_ERROR

au cœur de

PHP

E_CORE_WARNING

Avertissement lorsque PHP démarre. C'est comme le E_WARNING

E_COMPILE_ERROR

Erreur fatale à la compilation. C'est comme passer le moteur de script Zend pour générer E_ERROR

128

E_COMPILE_WARNING

Avertissement non fatal lors de la compilation. C'est comme passer le moteur de script Zend pour générer E_WARNING

256

E_USER_ERROR

Une erreur fatale générée par l'utilisateur, similaire à un programmeur utilisant la fonction PHP trigger_error () set E_ERROR

512

E_USER_WARNING

Avertissement non fatal généré par l'utilisateur, ce similaire à quoi les programmeurs utilisent PHP fonction trigger_error pour définir E_WARNING

1024

E_USER_NOTICE

Notification générée par l'utilisateur, similaire à la façon dont les programmeurs utilisent la fonction PHP trigger_error Définir E_NOTICE

2048

E_STRICT

Notification d'exécution. PHPSuggérez des modifications à votre code pour faciliter l'interopérabilité et la compatibilité de ce code

4096

E_RECOVERABLE_ERROR

Erreur fatale capturable, similaire à E_ERROR, mais peut être un gestionnaire de capture défini par l'utilisateur (voir set_error_handler())

8191

E_ALL

Toutes les erreurs et avertissements sauf le niveau E_STRICT ( en PHP6.0, E_STRICT fera partie de E_ALL)

Il convient de noter ici que lorsque $level est 0, la sortie d'erreur est désactivée, c'est-à-dire qu'aucune erreur ne sera générée.

2.set_error_handler()

Définition et utilisation

La fonction set_error_handler() définit une fonction de gestion des erreurs définie par l'utilisateur.

Cette fonction est utilisée pour créer la propre méthode de gestion des erreurs de l'utilisateur pendant l'exécution.

Cette fonction renvoie l'ancien gestionnaire d'erreurs, ou null en cas d'échec.

Syntaxe

set_error_handler(error_function,error_types)

Paramètres

参数

描述

error_function

必需。规定发生错误时运行的函数。

error_types

可选。规定在哪个错误报告级别会显示用户定义的错误。默认是 "E_ALL"。

Description

Obligatoire. Spécifie la fonction à exécuter lorsqu'une erreur se produit.

error_types

rapport d'erreurs les erreurs définies par l'utilisateur seront affichées. La valeur par défaut est "E_ALL".

Astuce : Si cette fonction est utilisée, la fonction standard de gestion des erreurs PHP sera complètement contournée. Si nécessaire, le gestionnaire d'erreurs défini par l'utilisateur doit terminer (die()) le script

Remarque : Si. dans Une erreur se produit avant l'exécution du script Étant donné que le programme personnalisé n'a pas été enregistré à ce moment-là, le gestionnaire d'erreurs personnalisé ne sera pas utilisé.

Le code de test est le suivant :

/**
 *
 * @param type $error_level 错误级别
 * @param type $error_message    错误信息
 * @param type $error_file 可选 错误文件
 * @param type $error_line 可选 错误行
 * @param type $error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。
 */
function my_error($error_level, $error_message, $error_file, $error_line, $error_context) {
  echo date('Y-m-d H:i:s') . $error_level . $error_message . $error_file . $error_line;
  var_dump($error_context);
}
set_error_handler('my_error', E_ALL);
print_r($a);

//D'après le cas ci-dessus, nous pouvons savoir que lors de l'enregistrement de la méthode my_error, le système écrasera automatiquement la gestion des erreurs d'origine error_fuction( ) méthode
Résultats d'exécution du programme ci-dessus :

Déclencheur d'erreur personnalisé

Définition et utilisation

Fonction trigger_error() Crée des messages d'erreur définis par l'utilisateur.

trigger_error() est utilisé pour déclencher un message d'erreur dans des conditions spécifiées par l'utilisateur. Il est utilisé avec le gestionnaire d'erreurs intégré ou avec des fonctions définies par l'utilisateur créées avec la fonction set_error_handler(). Si un type d'erreur illégal est spécifié, cette fonction renvoie false, sinon elle renvoie true.

Syntaxe

trigger_error(error_message,error_types)

Paramètres Description message_d'erreurObligatoire. Spécifie le message d'erreur. La limite de longueur est de error_types

1024

 caractères.

可选。规定错误消息的错误类型。 可能的值:

  • E_USER_ERROR

  • E_USER_WARNING

  • E_USER_NOTICE

测试代码如下:

/**
 *
 * @param type $level
 * @param type $msg
 */
function my_error($level, $msg) {
  switch ($level) {
  case E_USER_ERROR:
    echo "ERROR:<br/>";
    break;
  case E_USER_WARNING:
    echo "WARNING:<br/>";
    break;
  case E_USER_NOTICE:
    echo "NOTICE:<br/>";
    break;
  default:
    break;
  }
  echo "错误编号:" . $level . " <br/>";
  echo "错误信息:" . $msg;
}
//注册错误处理器
set_error_handler(&#39;my_error&#39;);
if (89 > 8) {
  //调用错误触发器
  trigger_error(&#39;这是错误啊&#39;, E_USER_WARNING);
}

运行结果如下:

WARNING:
错误编号:512
错误信息:这是错误啊

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn