Maison > développement back-end > tutoriel php > Mécanisme de gestion des erreurs PHP

Mécanisme de gestion des erreurs PHP

高洛峰
Libérer: 2023-03-04 15:06:01
original
1606 Les gens l'ont consulté

Dans le processus quotidien de développement du projet, il y aura toujours des erreurs anormales inattendues. Si nous ne les traitons pas relativement bien, le programme semblera très peu professionnel et deviendra probablement celui de quelqu'un d'autre. 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. Nous devons savoir que les centaines ou les milliers de lignes de code du projet sont quoi. chose terrifiante, 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 de la gestion des erreurs et des exceptions, puis la partage avec tout le monde pour apprendre les uns des autres ? et servir 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. Il se peut que le framework lui-même ait son propre traitement. mécanisme, ou il peut être traité dans le code, généralement ces paramètres de fonction :

1.error_reporting(); Définit le niveau d'erreur de PHP et renvoie 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 les valeurs possibles du niveau :

PHP 错误处理机制

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

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)

PHP 错误处理机制

Astuce : Si cette fonction est utilisée, les erreurs PHP standard seront complètement contournées Handler fonction, si nécessaire, le gestionnaire d'erreurs défini par l'utilisateur doit terminer (die()) le script,

Remarque : Si une erreur se produit avant l'exécution du script, puisque le programme personnalisé n'a pas été enregistré à ce moment-là , ce 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);
Copier après la connexion

//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

Déclencheur d'erreur personnalisé

Définition et utilisation

La fonction trigger_error() crée un message d'erreur défini 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)

PHP 错误处理机制

Le code de test est le suivant :

/**
 *
 * @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);
}
Copier après la connexion

Les résultats en cours d'exécution sont les suivants :

ATTENTION :
Numéro d'erreur : 512
Message d'erreur : ceci est une erreur

Ce qui précède représente l'intégralité du contenu de cet article, j'espère vous l'aimez.

Pour plus d'articles liés au mécanisme de gestion des erreurs PHP, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal