Designed by Derf !
66 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter





   

Les Exceptions en PHP 5 (1/4)

Comment gérer mes erreurs ?





mcorgnet
La gestion des exceptions en php est très simple, et elle se fait avec deux commandes : Try et Catch.


Introduction - Classe d'exceptions - Classe myUpload modifiée - Utilisation de la classe



Introduction

Depuis PHP5, on peut utiliser les exceptions. "Exceptions" est une classe intégrée à PHP5, que l'on peut étendre à d'autres classes, et qui permet de mieux gérer les erreurs d'un programme. Grace à l'utilisation de l'héritage et aux fonctionnalités de la POO, on peut rapidement créer un puissant outil de gestion des erreurs.

Comment allons nous faire ?

Dans mon article précédent, sur la POO en PHP5, je fournissais une classe que j'ai nommée myUpload. Dans cette classe, j'ai géré les erreurs manuellement, mais ça ne me convenait pas. Je vous la poste donc en page 3 avec les corrections pour que les erreurs soient gérées sous forme d'exceptions. Je vous invite à vous préparer sur la POO en amont, car les exceptions ne s'utilisent QU'EN PHP5.

L'instanciation de la classe

Pour déclarer une erreur, c'est très simple: on instancie la classe myException (disponible en deuxième page) au moment ou l'on déclare l'exception (ou l'erreur)


<?php
    
/**
    * Vérifie l'existence d'un dossier
    * 
    * <p>Teste l'existence d'un dossier,
    * renvoie une erreur si le dossier est introuvable</p>
    * 
    * @name myUpload::testDir()
    * @param $dir
    * @return string
    */
    
private function testDir($dir) {
        
//    la fonction is_dir teste l'existence d'un dossier
        
if (is_dir($dir)) {
        
//    si le dossier existe, j'applique la valeur $dir
        //    à la propriété $this->dir
        //    lorsque nous lanceront la copie de fichier, 
        //    nous rappelleront la propriété $this->dir
        
$myDir=$dir;
        }
        else {
        
//    si il y a une erreur lors du paramétrage, 
        //    je déclare une exception
        
throw new myException ('Le dossier ' $dir ' n\'existe pas');
        }
    
//    $myDir est la valeur retournée (string)
    
return $myDir;
    }
?>

Le Try et le Catch

Try ne vient pas sans Catch, Catch n'existe pas sans Try. Tout simplement :

Try (essaie ça) ma fonction, si ça ne fonctionne pas : Catch (attrape) l'erreur.

<?php
// on instancie la classe
// on execute les methodes dans le même Try
        //    on tente d'instancier la classe
        //    et de la paramétrer
        
try {
            
$myUpload->setMyDir("textes");
        }
        
// Une exception est levee uniquement si une erreur est trouvee
        
catch (MyException $e) {
            echo 
$e -> getError();
        }
?>

Pour pouvoir écrire dans ce forum, identifiez-vous !

  v1.3p © ASP-PHP.net 2002  

mcorgnet le 20/05/2006 (25 392 hits)
Didier Téléchargez 1200 Partitions Gratuites !!!
Au fil des news  
Listes liées (dépendantes) : avec ou sans XMLHTTPR - Les délires «Ajax or not Ajax»
Comme toujours, c'est à la suite d'un coup de pouce que je me suis décidé à faire ce tuto. Merci à ...
Amélioration du Search MOSS : Les scopes - Quelques possibilités d'amélioration du Search
Lorsqu'on installe le moteur de recherche de MOSS et qu'on le configure basiquement, on veut ...
SharePoint - Lister les templates utilisés - Identifier les définitions utilisées par vos sites
Un site SharePoint est créé à partir d'un modèle ou définition de site. Mais comment savoir après ...
PowerShell - Profile avec la participation de mon ami Tigrou :)
Adobe - Lancement de la CS4, tous à vos agendas !
[MAJ] PHP - Fonctions de redimensionnement d'images - BD : redimensionner image + picto après upload
Ajout de FONCTIONS de redimensionnement.
PHP - Tchat PHP V2.1 sans base de donnée
SharePoint et les statistiques d'utilisation - Comment obtenir des statistiques depuis SharePoint
La mise en place de ferme SharePoint doit s'accompagner d'une notion de gouvernance. Cette notion ...
Adobe - Nouvelles annonces Adobe sur le salon IBC 2008
PHP - PHP TV emission 2 (septembre 2008)
PHP - PDO ADMIN
[MAJ] Inscription contrôlée à une NewsLetter ou Service - Abonnement avec confirmation et désabonnement
Correction d'un point-virgule manquant (merci de m'avoir obligé à chercher JPierre) dans le module ...
PHP - Premier lundi d'une semaine et d'une année
JavaScript - Premier lundi d'une semaine et d'une année
ASP - Premier lundi d'une semaine et d'une année
Alphabet Radio et Code Morse - Alpha Zulu appelle Tango Charlie !
Encoder-Décoder en "Alphabet Radio" ... "Alpha Zulu appelle Tango Charlie !" ou en Code Morse ... ...
Filtrer les modèles de site SharePoint - Filtrer l'affichage des modèles de site SharePoint
Je vous propose de découvrir à l'aide de cet article quels mécanismes peuvent vous permettent de ...
ASP/PHP - Méthode de cryptage - par table de correspondance
(ASP/PHP) Une méthode de cryptage de données par l'utilisation d'une "table de correspondance ...
PHP - Listes liées (1 table) - version2
JavaScript - Rendre Visible ou Invisible des éléments d'un form
PHP - Listes liées (1 table) - version1
JavaScript - Intercepter le click sur vidéo WMP ou flash SWF
[MAJ] Une base de données sans base de données - Comment travailler avec des fichiers texte ?
Modification du paramétrage du dossier à scanner dans le popup qui permet de sélectionner l'image.
Jeux de l'été (et de 5) - Un jeu de Motus (mots de 8 lettres)
C'est reparti pour un tour... Comme je venais de proposer un jeu de Mastermind, je me suis dit que, ...
PowerShell - Extraire toutes les collections SharePoint en CSV
PowerShell - Lister les collections pour une WebApp SharePoint
PowerShell - Lister les utilisateurs d'un site SharePoint
PowerShell - Connaître le code version de votre SharePoint
Connaître la version de SharePoint installée - Comment savoir la version de SharePoint en cours
Dans le cadre de la maintenance de plusieurs fermes SharePoint, il est indispensable de connaître ...
PowerShell - Travailler avec une base de données SQL Server
.NET - Visual Studio 2008 sur Facebook : çà rock's
PowerShell - Ajouter des liens sur deux niveaux dans SharePoint
Un petit annuaire perso avec photo - en PHP et MySQL
Avoir des copains et des amis c'est bien que dis-je c'est même vital pour le bien être de chacun. ...
Une base de données sans base de données - Comment travailler avec des fichiers texte ?
Suite à une question sur le forum (les habitués me connaissent), je propose une mini-gestion de ...
ASP/PHP : Affichage de données en tableau html - Afficher des données (BD, Array) dans un tableau
Création d'un tableau "à la volée" pour afficher ses données. Affichage "en ligne" ou "en ...
PowerShell - Ajouter une liste dans un site SharePoint
Annuaire d'entreprise en PHP - Très pratique pour ne plus rien perdre
Mon petit annuaire d'entreprise, je m'en sers tous les jours alors autant vous en faire profiter. ...
PHP-MySQL : Formulaire - pour le script 'Bon anniversaire' de DB77
Formulaire et script d'enregistrement pour le script « Bon anniversaire » de DB77 en PHP/MySQL ...
.NET - Introducing Microsoft Silverlight 2.0, 2nd Edition
PHP5 - Upload de fichiers - Classe PHP
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3 © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 TechNet ASP-magazine CodePPC The Inquirer FR DotNet Project Groupes Utilisateurs Microsoft Wygwam El Roubio MVP Codes Sources