Maison développement back-end PHP7 Nouvelles fonctions de gestion des erreurs dans PHP7 : Comment mieux gérer les erreurs et exceptions ?

Nouvelles fonctions de gestion des erreurs dans PHP7 : Comment mieux gérer les erreurs et exceptions ?

Oct 24, 2023 pm 12:37 PM
php 错误处理 Gestion des exceptions

Nouvelles fonctions de gestion des erreurs dans PHP7 : Comment mieux gérer les erreurs et exceptions ?

Certaines fonctions puissantes de gestion des erreurs ont été ajoutées à PHP7, rendant les développeurs plus flexibles et efficaces dans la gestion des erreurs et des exceptions. Cet article présente ces nouvelles fonctions de gestion des erreurs et fournit des exemples de code spécifiques pour montrer comment mieux gérer les erreurs et les exceptions.

1. Fonction de gestion des erreurs

  1. set_error_handler(callback)
    Cette fonction est utilisée pour enregistrer une fonction de gestion des erreurs personnalisée Lorsqu'une erreur se produit, cette fonction sera appelée pour la gérer. Les développeurs peuvent enregistrer des journaux d'erreurs, envoyer des e-mails d'erreur et d'autres opérations dans cette fonction personnalisée. Voici un exemple de code : set_error_handler(callback)
    这个函数用于注册一个自定义的错误处理函数,当发生错误时,会调用这个函数来处理。开发者可以在这个自定义函数中记录错误日志、发送错误邮件等操作。下面是一个示例代码:
function customErrorHandler($errno, $errstr, $errfile, $errline) {
    // 记录错误日志
    error_log("Error: $errstr in $errfile on line $errline");
   
    // 发送错误邮件
    $to = "admin@example.com";
    $subject = "PHP Error";
    $message = "An error occurred: $errstr in $errfile on line $errline";
    mail($to, $subject, $message);
}
set_error_handler("customErrorHandler");
Copier après la connexion
  1. set_exception_handler(callback)
    这个函数用于注册一个自定义的异常处理函数,当发生异常时,会调用这个函数来处理。开发者可以在这个自定义函数中记录异常日志、发送异常邮件等操作。下面是一个示例代码:
function customExceptionHandler($exception) {
    // 记录异常日志
    error_log("Exception: " . $exception->getMessage());
   
    // 发送异常邮件
    $to = "admin@example.com";
    $subject = "PHP Exception";
    $message = "An exception occurred: " . $exception->getMessage();
    mail($to, $subject, $message);
}
set_exception_handler("customExceptionHandler");
Copier après la connexion
  1. error_reporting(level)
    这个函数用于设置错误报告的级别。开发者可以通过设置不同的级别来控制是否显示和记录错误信息。下面是一些常用的错误报告级别:
  • E_ALL:显示和记录所有错误(默认值)。
  • E_ERROR:只显示和记录致命错误。
  • E_WARNING:显示和记录警告和致命错误。
  • E_NOTICE:显示和记录通知、警告和致命错误。
  • E_NONE
    function customErrorHandler($errno, $errstr, $errfile, $errline) {
        // 记录错误日志
        error_log("Error: $errstr in $errfile on line $errline");
    
        // 返回一个错误提示给用户
        echo "上传失败,请稍后重试。";
    }
    set_error_handler("customErrorHandler");
    Copier après la connexion
      set_exception_handler(callback)
      Cette fonction est utilisée pour enregistrer une fonction de gestion d'exception personnalisée lorsqu'une exception se produit Lorsqu'une exception se produit, cette fonction sera appelée pour la gérer. Les développeurs peuvent enregistrer des journaux d'exceptions, envoyer des e-mails d'exception et d'autres opérations dans cette fonction personnalisée. Voici un exemple de code :
function customExceptionHandler($exception) {
    // 记录异常日志
    error_log("Exception: " . $exception->getMessage());

    // 返回一个异常提示给用户
    echo "上传失败,请稍后重试。";
}
set_exception_handler("customExceptionHandler");
Copier après la connexion

    error_reporting(level)
    Cette fonction est utilisée pour définir le niveau de rapport d'erreurs. Les développeurs peuvent contrôler si les messages d'erreur sont affichés et enregistrés en définissant différents niveaux. Voici quelques niveaux de rapport d'erreurs couramment utilisés :

    E_ALL : affiche et enregistre toutes les erreurs (par défaut).

    E_ERROR : affiche et enregistre uniquement les erreurs fatales.

    E_WARNING : affiche et enregistre les avertissements et les erreurs fatales.

    E_NOTICE : affiche et enregistre les notifications, les avertissements et les erreurs fatales.

    E_NONE : Ne pas afficher ni enregistrer d'erreurs.

    2. Exemple de gestion des erreurs

    Ci-dessous, nous utiliserons un exemple pour montrer comment utiliser ces fonctions de gestion des erreurs.

    Supposons que nous ayons une fonction pour télécharger des images via un formulaire et les enregistrer sur le serveur. Nous espérons être en mesure de gérer toutes les erreurs et exceptions pouvant survenir pendant le processus de téléchargement et de fournir aux utilisateurs un message d'erreur clair. 🎜🎜Tout d'abord, nous avons mis en place une fonction de gestion des erreurs personnalisée pour enregistrer les journaux d'erreurs : 🎜
    try {
        // 检查图片文件是否上传成功
        if ($_FILES["file"]["error"] != UPLOAD_ERR_OK) {
            throw new Exception("上传失败");
        }
        
        // 检查文件类型是否合法
        $allowedTypes = ["image/jpeg", "image/png"];
        if (!in_array($_FILES["file"]["type"], $allowedTypes)) {
            throw new Exception("文件类型不支持");
        }
    
        // 将上传的文件保存到服务器上
        $destination = "uploads/" . $_FILES["file"]["name"];
        move_uploaded_file($_FILES["file"]["tmp_name"], $destination);
    
        // 返回上传成功提示给用户
        echo "上传成功";
    } catch (Exception $e) {
        // 处理异常
        $error = $e->getMessage();
        error_log("Exception: $error");
    
        // 返回一个错误提示给用户
        echo "上传失败,请稍后重试。";
    }
    Copier après la connexion
    🎜 Ensuite, nous avons mis en place une fonction de gestion des exceptions personnalisée pour enregistrer les journaux d'exceptions : 🎜rrreee🎜Enfin, nous écrivons le code de l'image de téléchargement, et capturons et gérer les erreurs et les exceptions là où elles peuvent survenir : 🎜rrreee🎜Grâce au code ci-dessus, nous avons implémenté une fonction de téléchargement d'images sûre et fiable. Que des erreurs ou des exceptions se produisent, nous pouvons les détecter, les gérer et renvoyer un message d'erreur clair à l'utilisateur. 🎜🎜Résumé🎜🎜Les nouvelles fonctions de gestion des erreurs de PHP7 offrent aux développeurs la possibilité de mieux gérer les erreurs et les exceptions. En définissant des fonctions personnalisées de gestion des erreurs et des fonctions de gestion des exceptions, les développeurs peuvent gérer de manière flexible diverses erreurs et exceptions, notamment l'enregistrement des journaux d'erreurs, l'envoi d'e-mails d'erreur et d'autres opérations. Nous espérons que l'introduction et les exemples de cet article pourront aider les lecteurs à mieux gérer les erreurs et les exceptions et à améliorer l'efficacité du développement. 🎜

    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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

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.

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

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

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles