Maison développement back-end tutoriel php Guide de gestion des erreurs PHP 7 : Comment personnaliser les fonctions de rapport d'erreurs à l'aide de la fonction set_error_handler

Guide de gestion des erreurs PHP 7 : Comment personnaliser les fonctions de rapport d'erreurs à l'aide de la fonction set_error_handler

Aug 01, 2023 am 11:00 AM
php 错误处理 set_error_handler

Guide de gestion des erreurs PHP 7 : Comment utiliser la fonction set_error_handler pour personnaliser la fonction de rapport d'erreurs

Dans le développement PHP, la gestion des erreurs est un aspect important. La gestion des erreurs peut nous aider à mieux déboguer le code, à localiser les problèmes et à offrir une meilleure expérience utilisateur. PHP 7 nous fournit de puissantes fonctions de gestion des erreurs, parmi lesquelles la fonction set_error_handler est un outil très utile qui nous permet de personnaliser les fonctions de rapport d'erreurs.

1. Comprendre la fonction set_error_handler

La fonction set_error_handler est une fonction fournie par PHP pour personnaliser les fonctions de rapport d'erreurs. En utilisant la fonction set_error_handler, nous pouvons personnaliser la façon dont les erreurs PHP sont gérées, comme l'enregistrement des journaux d'erreurs, l'affichage des pages d'erreur ou l'envoi de rapports d'erreurs aux développeurs.

2. Exemple de code

Ce qui suit est un exemple de code qui utilise la fonction set_error_handler pour personnaliser la fonction de rapport d'erreurs :

<?php
// 自定义错误报告函数
function customErrorHandler($errno, $errstr, $errfile, $errline)
{
    switch ($errno) {
        case E_ERROR:
        case E_USER_ERROR:
            echo "<b>Error:</b> [$errno] $errstr<br>";
            echo "脚本终止于该错误发生的位置。";
            break;

        case E_WARNING:
        case E_USER_WARNING:
            echo "<b>Warning:</b> [$errno] $errstr<br>";
            break;

        case E_NOTICE:
        case E_USER_NOTICE:
            echo "<b>Notice:</b> [$errno] $errstr<br>";
            break;

        default:
            echo "未知错误类型: [$errno] $errstr<br>";
            break;
    }

    // 返回true,以停止PHP内置的错误处理
    return true;
}

// 注册自定义错误报告函数
set_error_handler("customErrorHandler");

// 引发一个错误
echo $undefinedVariable; // 这个变量没有定义,将会引发一个E_NOTICE级别的错误
Copier après la connexion

3. Explication du code

L'explication du code ci-dessus est la suivante :

  • Créez un. fichier nommé la fonction de rapport d'erreurs personnalisée de customErrorHandler< /code>, qui accepte quatre paramètres : <code>$errno (niveau d'erreur), $errstr (message d'erreur), $errfile (le fichier où se trouve l'erreur), $errline (le numéro de ligne où se trouve l'erreur customErrorHandler的自定义错误报告函数,该函数接受四个参数:$errno(错误级别)、$errstr(错误消息)、$errfile(错误所在的文件)、$errline(错误所在的行号);
  • customErrorHandler函数中,使用switch语句根据错误级别来输出不同类型的错误信息;
  • 在默认情况下(未知错误类型),输出一个通用的错误信息;
  • customErrorHandler函数的最后,使用return true来告诉PHP停止继续处理该错误;
  • 最后,使用set_error_handler函数注册自定义错误报告函数为全局的错误处理函数;
  • 最后一行代码echo $undefinedVariable;是一个故意引发错误的代码,因为$undefinedVariable
  • Dans le customErrorHandler</code) ; > fonction, utilisez <code>switch</code >L'instruction génère différents types de messages d'erreur en fonction du niveau d'erreur ; </ul><p>Par défaut (type d'erreur inconnu), un message d'erreur général est généré </p><p>À la fin du ; Fonction <code>customErrorHandler, utilisez return true pour dire à PHP d'arrêter de traiter l'erreur ;

    Enfin, utilisez la fonction set_error_handler pour enregistrer le rapport d'erreur personnalisé ; fonctionner comme une fonction globale de gestion des erreurs ;

    La dernière ligne de codeecho $undefinedVariable; est un code qui provoque intentionnellement une erreur car la variable $undefinedVariable n'est pas définie, ce qui déclenchera une erreur de niveau E_NOTICE.

    4. Exécution des résultats

    Exécutez le code ci-dessus, vous verrez le résultat suivant : 🎜
    Notice: Undefined variable: undefinedVariable in /path/to/your/script.php on line 33
    Copier après la connexion
    🎜C'est parce que nous avons délibérément déclenché une erreur de niveau E_NOTICE dans le code. 🎜🎜5. Résumé🎜🎜En utilisant la fonction set_error_handler, nous pouvons personnaliser la fonction de rapport d'erreurs PHP pour mieux gérer les erreurs dans le code. Dans le développement réel, vous pouvez enregistrer des informations sur les erreurs dans des fichiers journaux, envoyer des rapports d'erreurs aux développeurs ou afficher des informations sur les erreurs aux utilisateurs en fonction de vos propres besoins. L'exemple ci-dessus n'est qu'un exemple simple que vous pouvez modifier et étendre selon vos besoins. 🎜🎜J'espère que cet article pourra vous aider à mieux comprendre et utiliser le mécanisme de gestion des erreurs de PHP 7. Bonne programmation ! 🎜

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles