recherche
Maisondéveloppement back-endtutoriel phpUn cours intensif de modifications de la gestion des exceptions en php 7

A Crash Course of Changes to Exception Handling in PHP 7

Améliorations majeures de la gestion des exceptions de PHP 7

PHP 7 a apporté des améliorations significatives à la gestion des exceptions, en introduisant la classe Throwable et Error, ce qui améliore considérablement les capacités de gestion des erreurs. L'interface Throwable est l'interface de base des classes Exception et Error, permettant aux développeurs d'attraper toutes les erreurs jetables, que ce soit des exceptions ou des erreurs. La classe Error gère diverses erreurs de PHP internes, y compris les erreurs mortelles et de type, et est décomposée en quatre sous-classes: ArithmeticError, TypeError, ParseError, AssertionError et

.

A Crash Course of Changes to Exception Handling in PHP 7

Throwable Interface

L'interface Throwable Exception est l'interface parent des classes Error et

, vous permettant d'attraper des erreurs jetables, qu'il s'agisse d'une exception ou d'une erreur. Par exemple:
<?php try {
    throw new Exception("这是一个异常");
} catch (Throwable $e) {
    echo $e->getMessage();
}

ParseError ou nouveau

:
<?php try {
    $result = eval("2*'7'");
} catch (Throwable $e) {
    echo $e->getMessage();
}

ParseError Exécutez ce code pour obtenir un eval() parce que le point-virgule est manquant dans

.

Throwable Les classes personnalisées ne peuvent pas être implémentées directement Throwable, mais doivent étendre la classe Exception qui implémente l'interface

.

Error catégorie

Error

La classe gère les erreurs internes PHP (erreur mortelle ou erreur de type). Il a quatre sous-classes:
  1. ArithmeticError
  2. : erreur arithmétique, comme la division par zéro.
  3. TypeError
  4. : Type d'erreur, tel que l'attribution de la valeur du mauvais type à une variable.
  5. ParseError
  6. : Erreur d'analyse, comme l'erreur de syntaxe.
  7. AssertionError assert(): Erreur d'affirmation, lancé lorsque la condition dans la fonction
  8. est fausse.

Error Avant de passer à PHP 7, si une classe de personnalité

est définie, son nom doit être modifié, sinon une erreur fatale se produira.

ArithmeticError

intdiv() Cette erreur se produit lors de l'exécution des opérations mathématiques. Par exemple, utilisez

:
<?php try {
    var_dump(intdiv(PHP_INT_MIN, -1));
} catch (ArithmeticError $e) {
    echo $e->getMessage();
}

obtiendra la division " de php_int_min par -1 DivisionByZeroError". ArithmeticError est une sous-classe de

et est jetée lorsqu'elle est divisée par zéro.

TypeError

Cette erreur est principalement liée à la déclaration de type scalaire dans PHP 7. Cette erreur s'affiche lorsque vous créez une fonction ou une variable d'un type de données spécifique et essayez d'enregistrer des valeurs pour différents types de données.

ParseError

eval() Cette erreur est lancée lors de l'utilisation de

pour insérer une nouvelle ligne de code ou à l'aide d'un fichier PHP externe contenant une erreur de syntaxe.

AssertionError

Cette erreur n'est lancée que lorsque l'affirmation de la fonction assert() échoue. Les instructions php.ini et assert.exception doivent être configurées dans zend.assertions pour assister à cette erreur.

Résumé

L'interface Throwable et les classes Error introduites dans PHP 7 Simplifier la gestion des exceptions et faciliter la manipulation des différents types d'erreur. Lors de la mise à niveau vers PHP 7, soyez conscient des problèmes de dénomination avec les classes Custom Error et connaissez de nouvelles erreurs et des classes étendues.

FAQS (FAQ)

  • Quels sont les principaux changements de la gestion des exceptions de PHP 7? php 7 introduit la classe d'interface Throwable et Error, et toutes les erreurs peuvent être traitées comme des exceptions et capturées avec le bloc try/catch.

  • Throwable Comment fonctionne l'interface? Throwable est l'interface de base pour toutes les exceptions, implémentées par Exception et Error.

  • Error Quelle est la fonction de la classe? Error La classe est utilisée pour gérer les erreurs de PHP internes.

  • Comment gérer les exceptions dans PHP 7? Utilisez le bloc try/catch pour capturer les objets Throwable, Exception et Error.

  • Quelle est la différence entre

    Exception et Error? Exception pour les exceptions traditionnelles, Error pour les erreurs de PHP internes.

  • Comment lancer une exception dans PHP 7? Utilisez le mot-clé throw.

  • Comment créer une exception personnalisée dans PHP 7? Extendez Exception Classe.

  • finally Quelle est la fonction des mots clés? Le code du bloc finally sera exécuté, que l'exception soit lancée ou non.

  • Comment remédier à une exception dans PHP 7? Utilisez le mot-clé catch dans le bloc throw.

  • Comment gérer plusieurs exceptions dans PHP 7? Inclure plusieurs blocs try/catch dans l'instruction catch.

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
Expliquez comment l'équilibrage de charge affecte la gestion des sessions et comment y remédier.Expliquez comment l'équilibrage de charge affecte la gestion des sessions et comment y remédier.Apr 29, 2025 am 12:42 AM

L'équilibrage de charge affecte la gestion de la session, mais peut être résolu avec la réplication de la session, l'adhérence des sessions et le stockage centralisé de session. 1. Session Replication Copy Données de session entre les serveurs. 2. Session Stickleness dirige les demandes d'utilisateurs vers le même serveur. 3. Le stockage centralisé de session utilise des serveurs indépendants tels que Redis pour stocker les données de session pour assurer le partage de données.

Expliquez le concept de verrouillage des sessions.Expliquez le concept de verrouillage des sessions.Apr 29, 2025 am 12:39 AM

Session BlockingSateChnique utilisétoenSureAuser'sessionremainSexclusiVetoonUseratatime.ITCUCIALFORPREVERSDATACORUPRUPTIONANDSECRYSEURCHEBRESSInMulti-userApplications.SessionLockingisImplementEdUsingServer-SidelockingMechanisms, telasreentrantLockinjj

Y a-t-il des alternatives aux séances PHP?Y a-t-il des alternatives aux séances PHP?Apr 29, 2025 am 12:36 AM

Les alternatives aux séances PHP comprennent des cookies, une authentification basée sur des jetons, des sessions basées sur la base de données et Redis / Memcached. 1.CooKies Gérer les sessions en stockant des données sur le client, ce qui est simple mais faible en sécurité. 2. L'authentification basée sur le token utilise des jetons pour vérifier les utilisateurs, ce qui est hautement sécurisé mais nécessite une logique supplémentaire. 3.Database basée sur les séances stocke les données dans la base de données, qui a une bonne évolutivité mais peut affecter les performances. 4. redis / memcached utilise un cache distribué pour améliorer les performances et l'évolutivité, mais nécessite une correspondance supplémentaire

Définissez le terme «détournement de session» dans le contexte de PHP.Définissez le terme «détournement de session» dans le contexte de PHP.Apr 29, 2025 am 12:33 AM

SessionHijacking fait référence à un attaquant imitant un utilisateur en obtenant le SessionID de l'utilisateur. Les méthodes de prévention comprennent: 1) le chiffrement de la communication à l'aide de HTTPS; 2) Vérification de la source du sessionID; 3) Utilisation d'un algorithme de génération de sessionID sécurisé; 4) Mise à jour régulière du SessionID.

Quelle est la forme complète de PHP?Quelle est la forme complète de PHP?Apr 28, 2025 pm 04:58 PM

L'article traite de PHP, détaillant sa forme complète, les principales utilisations du développement Web, la comparaison avec Python et Java, et sa facilité d'apprentissage pour les débutants.

Comment PHP gère-t-il les données de formulaire?Comment PHP gère-t-il les données de formulaire?Apr 28, 2025 pm 04:57 PM

PHP gère les données de formulaire à l'aide de $ \ _ Post et $ \ _ obtiennent des superglobaux, avec la sécurité assurée par la validation, la désinfection et les interactions de base de données sécurisées.

Quelle est la différence entre PHP et ASP.NET?Quelle est la différence entre PHP et ASP.NET?Apr 28, 2025 pm 04:56 PM

L'article compare PHP et ASP.NET, en se concentrant sur leur pertinence pour les applications Web à grande échelle, les différences de performances et les fonctionnalités de sécurité. Les deux sont viables pour les grands projets, mais PHP est open-source et indépendant de la plate-forme, tandis que ASP.NET,

PHP est-il un langage sensible à la cas?PHP est-il un langage sensible à la cas?Apr 28, 2025 pm 04:55 PM

La sensibilité à la caisse de PHP varie: les fonctions sont insensibles, tandis que les variables et les classes sont sensibles. Les meilleures pratiques incluent la dénomination cohérente et l'utilisation de fonctions insensibles à des cas pour les comparaisons.

See all articles

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

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),