Maison  >  Article  >  développement back-end  >  A quoi sert la gestion des exceptions PHP ?

A quoi sert la gestion des exceptions PHP ?

烟雨青岚
烟雨青岚original
2020-06-30 16:21:412271parcourir

La gestion des exceptions (Exception) est utilisée pour modifier le flux normal du script lorsqu'une erreur spécifiée se produit. Lorsqu'une exception est levée, le code suivant ne continuera pas à s'exécuter et PHP tentera de trouver un bloc de code "catch" correspondant.

A quoi sert la gestion des exceptions PHP ?

L'exception est utilisée pour modifier le flux normal du script lorsqu'une erreur spécifiée se produit.

Utilisation de base des exceptions

Lorsqu'une exception est levée, le code suivant ne continuera pas à s'exécuter, PHP essaiera Find correspondant aux blocs de code "catch".

Si l'exception n'est pas interceptée et qu'il n'est pas nécessaire d'utiliser set_exception_handler() pour le traitement correspondant, alors une erreur grave (erreur fatale) se produira et "Uncaught Exception" sera affiché.

Essayons de lancer une exception sans l'attraper :

<?php
//create function with an exception
function checkNum($number)
{
if($number>1)
 {
 throw new Exception("Value must be 1 or below");
 }
return true;
}
//trigger exception
checkNum(2);
?>

Le code ci-dessus obtiendra une erreur comme celle-ci :

Fatal error: Uncaught exception &#39;Exception&#39; 
with message &#39;Value must be 1 or below&#39; in C:\webfolder\test.php:6 
Stack trace: #0 C:\webfolder\test.php(12): 
checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6

Essayer, lancer et attraper

Pour éviter les erreurs de l'exemple ci-dessus, nous devons créer un code approprié pour gérer les exceptions.

Le gestionnaire correct doit inclure :

Try - Les fonctions qui utilisent des exceptions doivent être dans un bloc "try". Si aucune exception n'est déclenchée, le code continue son exécution comme d'habitude. Mais si une exception est déclenchée, une exception sera levée. Throw - Ceci spécifie comment déclencher l'exception. Chaque "lancer" doit correspondre à au moins un "catch"Catch - le bloc de code "catch" interceptera l'exception et créera un objet contenant les informations d'exception

Déclenchons une exception :

<?php
//创建可抛出一个异常的函数
function checkNum($number)
{
if($number>1)
 {
 throw new Exception("Value must be 1 or below");
 }
return true;
}
//在 "try" 代码块中触发异常
try
{
checkNum(2);
//If the exception is thrown, this text will not be shown
echo &#39;If you see this, the number is 1 or below&#39;;
}
//捕获异常
catch(Exception $e)
{
echo &#39;Message: &#39; .$e->getMessage();
}
?>

Le code ci-dessus obtiendra une erreur similaire à celle-ci :

Message : La valeur doit être inférieure ou égale à 1

Explication de l'exemple :

Le code ci-dessus Une exception a été levée et interceptée :

Créez la fonction checkNum(). Il détecte si le nombre est supérieur à 1. Si c'est le cas, lancez une exception. Appelez la fonction checkNum() dans le bloc "try". Une exception est levée dans la fonction checkNum(). Le bloc de code "catch" reçoit l'exception et crée un objet ($e) contenant les informations sur l'exception. En appelant $e->getMessage() depuis cet objet d'exception, le message d'erreur de l'exception est généré

Cependant, afin de suivre le principe de "chaque lancer doit correspondre à un catch", un top -une exception de niveau peut être configurée pour que le processeur gère les erreurs manquées.

Tutoriel recommandé : "Tutoriel php"

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