Maison  >  Article  >  développement back-end  >  Gestion des erreurs et exceptions PHP

Gestion des erreurs et exceptions PHP

墨辰丷
墨辰丷original
2018-06-09 09:35:161453parcourir

Cet article présente principalement la gestion des erreurs et des exceptions PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Dans le processus quotidien de développement de projets, il y aura toujours des erreurs d'exception inattendues. Si nous ne les traitons pas relativement bien, le programme semblera très peu professionnel et il risque d'échouer. informations 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 à ce moment-là, nous ne pouvons regarder le code que depuis le début. dans le projet sont très importants pour nous. C'est effrayant, alors comment pouvons-nous localiser rapidement et précisément les exceptions et les erreurs pendant le processus de développement du projet, et les gérer en conséquence ? Cet article utilise ma propre compréhension des erreurs et de la gestion des exceptions ? partager avec vous Tout le monde apprend les uns des autres et sert de rappel.

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(); Définir le niveau d'erreur de PHP et renvoyer le niveau actuel

error_reporting(report_level)

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

32 >64PHP

>Toutes les erreurs et avertissements sauf le niveau Dans PHP6.0, E_STRICT

valeur

constant

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

Erreur fatale générée par l'utilisateur, similaire à un programmeur utilisant la fonction PHP trigger_error() Définir E_ERROR

512

E_USER_WARNING

Avertissement non fatal généré par l'utilisateur, cet Semblable à ce que 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()) E_ALL

E_STRICT

(
fera

E_ALL
partie de)

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

error_function

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

error_types

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'erreur

Obligatoire. Spécifie le message d'erreur. La limite de longueur est de 1024  caractères.

error_types

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

  • 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
错误信息:这是错误啊

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php字符串及流程控制的方法

PHP实现全角字符转为半角的方法

php实现针对html标签中结束标签的检测与补全功能

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