Tutoriel PHP POO

PHP

Découvez la programmation orienté objet en de PHP.

HTML HTML5 CSS Dreamweaver Bootstrap PHP

Les exceptions

Le mécanisme des exceptions a été introduit à PHP dans sa version 5 en complément de son nouveau modèle orienté objet. Au même titre qu'en Java, C++, Action Script 3 ou bien Visual Basic (pour ne citer que ces langages de programmation), les exceptions permettent de simplifier, personnaliser et d'organiser la gestion des « erreurs » dans un programme informatique. Ici le mot « erreurs » ne signifie pas « bug », qui est un comportement anormal de l'application développée, mais plutôt « cas exceptionnel » à traiter différemment dans le déroulement du programme. Etudions donc comment fonctionnent les exceptions.

Nous introduirons dans un premier temps la classe native Exception de PHP 5. Puis nous étudierons comment lancer et attraper des exceptions dans un programme. A partir de là, nous serons capables d'étendre le modèle Exception pour développer des exceptions dérivées et de types différents. Enfin, nous aborderons la notion de gestion évènementielle des exceptions au moyen du handler d'exception natif de php.

La classe native Exception

Comme nous l'avons déjà expliqué dans les précédents tutoriels du chapitre de programmation orientée objet, PHP dispose depuis sa version 5 d'un modèle objet semblable à celui de Java. Pour agrémenter ce nouveau moteur, l'équipe de développement de PHP a intégré en natif une classe Exception. Cette classe très particulière permet au développeur de simplifier le traitement des cas exceptionnels susceptibles d'apparaître pendant l'exécution d'un programme en générant des objets de type Exception. En fin de compte, retenez qu'une exception n'est rien de plus qu'un objet (instance d'une classe). Le listing ci-après présente le code de la classe Exception.

Code source de la classe native Exception (extrait de la documentation officielle de PHP)
<?php
class Exception
{
protected $message = 'exception inconnu'; // message de l'exception
protected $code = 0; // code de l'exception défini par l'utilisateur
protected $file; // nom du fichier source de l'exception
protected $line; // ligne de la source de l'exception
function __construct(string $message=NULL, int code=0);
final function getMessage(); // message de l'exception
final function getCode(); // code de l'exception
final function getFile(); // nom du fichier source
final function getLine(); // ligne du fichier source
final function getTrace(); // un tableau de backtrace()
final function getTraceAsString(); // chaîne formattée de trace
/* Remplacable */
function __toString(); // chaîne formatée pour l'affichage
}
?>