Tutoriel PHP

ACCUEIL PHP Introduction PHP Installation PHP Syntaxe PHP Commentaires PHP Variables PHP Écho PHP / Impression Types de données PHP Chaînes PHP Numéros PHP Mathématiques PHP Constantes PHP Opérateurs PHP PHP Si... Sinon... Sinon Commutateur PHP Boucles PHP Fonctions PHP Tableaux PHP Superglobales PHP Expression régulière PHP

Formulaires PHP

Gestion des formulaires PHP Validation de formulaire PHP Formulaire PHP requis URL/courriel du formulaire PHP Formulaire PHP terminé

PHP Avancé

Date et heure PHP Inclure PHP Gestion des fichiers PHP Fichier PHP Ouvrir/Lire Création/écriture de fichier PHP Téléchargement de fichier PHP Cookies PHP Séances PHP Filtres PHP Filtres PHP avancés Fonctions de rappel PHP PHPJSON Exception PHP

POO PHP

PHP Qu'est-ce que la POO Classes/Objets PHP Constructeur PHP Destructeur PHP Modificateurs d'accès PHP Héritage PHP Constantes PHP Classes abstraites PHP Interface PHP Caractéristiques PHP Méthodes statiques PHP Propriétés statiques PHP Espaces de noms PHP Itérables PHP

Base de données MySQL

Base de données MySQL Connexion MySQL Créer une base de données MySQL Créer une table MySQL MySQL Insérer des données MySQL obtenir le dernier ID MySQL Insérer plusieurs MySQL préparé MySQL Sélectionner les données MySQL Où Trier MySQL par MySQL Supprimer les données Données de mise à jour MySQL Données de limite MySQL

XML PHP

Analyseurs PHP XML Analyseur PHP SimpleXML PHP SimpleXML - Obtenir Expatriation PHP XML PHP XML DOM

PHP -AJAX

Introduction à AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en direct AJAX Sondage AJAX

Exemples PHP

Exemples PHP Compilateur PHP Questionnaire PHP Exercices PHP Certificat PHP

Référence PHP

Présentation de PHP Tableau PHP Calendrier PHP Date PHP Annuaire PHP Erreur PHP Exception PHP Système de fichiers PHP Filtre PHP FTP PHP PHPJSON Mots clés PHP PHP LibxmlComment Messagerie PHP Mathématiques PHP Divers PHP PHP MySQL Réseau PHP Contrôle de sortie PHP Expression régulière PHP PHP SimpleXML Flux PHP Chaîne PHP Gestion des variables PHP Analyseur PHP XML Code postal PHP Fuseaux horaires PHP

Exception PHP


Qu'est-ce qu'une exception ?

Une exception est un objet qui décrit une erreur ou un comportement inattendu d'un script PHP.

Des exceptions sont levées par de nombreuses fonctions et classes PHP.

Les fonctions et les classes définies par l'utilisateur peuvent également lever des exceptions.

Les exceptions sont un bon moyen d'arrêter une fonction lorsqu'elle rencontre des données qu'elle ne peut pas utiliser.


Lancer une exception

L' throwinstruction permet à une fonction ou méthode définie par l'utilisateur de lever une exception. Lorsqu'une exception est levée, le code qui la suit ne sera pas exécuté.

Si une exception n'est pas interceptée, une erreur fatale se produira avec un message "Exception non interceptée".

Essayons de lancer une exception sans l'attraper :

Exemple

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

echo divide(5, 0);
?>

Le résultat ressemblera à ceci :

Fatal error: Uncaught Exception: Division by zero in C:\webfolder\test.php:4
Stack trace: #0 C:\webfolder\test.php(9):
divide(5, 0) #1 {main} thrown in C:\webfolder\test.php on line 4

La déclaration try...catch

Pour éviter l'erreur de l'exemple ci-dessus, nous pouvons utiliser l' try...catchinstruction pour intercepter les exceptions et poursuivre le processus.

Syntaxe

try {
  code that can throw exceptions
} catch(Exception $e) {
  code that runs when an exception is caught
}

Exemple

Afficher un message lorsqu'une exception est levée :

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide.";
}
?>

Le bloc catch indique quel type d'exception doit être intercepté et le nom de la variable qui peut être utilisée pour accéder à l'exception. Dans l'exemple ci-dessus, le type d'exception est Exceptionet le nom de la variable est $e.


La déclaration essayer ... attraper ... enfin

L' try...catch...finallyinstruction peut être utilisée pour intercepter des exceptions. Le code dans le finallybloc s'exécutera toujours, qu'une exception ait été interceptée ou non. Si finallyest présent, le catchbloc est facultatif.

Syntaxe

try {
  code that can throw exceptions
} catch(Exception $e) {
  code that runs when an exception is caught
} finally {
  code that always runs regardless of whether an exception was caught
}

Exemple

Afficher un message lorsqu'une exception est levée, puis indiquer que le processus est terminé :

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide. ";
} finally {
  echo "Process complete.";
}
?>

Exemple

Affiche une chaîne même si une exception n'a pas été interceptée :

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} finally {
  echo "Process complete.";
}
?>

L'objet d'exception

L'objet Exception contient des informations sur l'erreur ou le comportement inattendu rencontré par la fonction.

Syntaxe

new Exception(message, code, previous)

Valeurs des paramètres

Parameter Description
message Optional. A string describing why the exception was thrown
code Optional. An integer that can be used used to easily distinguish this exception from others of the same type
previous Optional. If this exception was thrown in a catch block of another exception, it is recommended to pass that exception into this parameter

Méthodes

Lors de l'interception d'une exception, le tableau suivant montre certaines des méthodes qui peuvent être utilisées pour obtenir des informations sur l'exception :

Method Description
getMessage() Returns a string describing why the exception was thrown
getPrevious() If this exception was triggered by another one, this method returns the previous exception. If not, then it returns null
getCode() Returns the exception code
getFile() Returns the full path of the file in which the exception was thrown
getLine() Returns the line number of the line of code which threw the exception

Exemple

Informations de sortie sur une exception qui a été levée :

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero", 1);
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $ex) {
  $code = $ex->getCode();
  $message = $ex->getMessage();
  $file = $ex->getFile();
  $line = $ex->getLine();
  echo "Exception thrown in $file on line $line: [Code $code]
  $message";
}
?>

Référence complète des exceptions

Pour une référence complète, consultez notre Référence complète des exceptions PHP .

La référence contient des descriptions et des exemples de toutes les méthodes Exception.