begin process at 2012 05 27 22:14:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > CLASSE D'EXCEPTIONS ET DE GESTIONS D'ERREURS PHP5

CLASSE D'EXCEPTIONS ET DE GESTIONS D'ERREURS PHP5


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Niveau :Initié Date de création :18/12/2004 Date de mise à jour :19/12/2004 18:35:30 Vu / téléchargé :3 602 / 251

Auteur : Gorrk

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Tout est dans la source et dans le zip.

Source

  • <?php
  • /**
  • * Classe d'exception
  • *
  • * Cette classe complete legerement la classe d'exception de PHP,
  • * elle peut egalement etre utiliser pour gerer (presque) toutes les erreurs
  • * par l'intermediaire de la fonction error_handler().
  • *
  • * <code>
  • * <?php
  • * try
  • * {
  • * throw new MyException("Erreur de configuration");
  • * }
  • * catch (MyException $e)
  • * {
  • * echo $e->getSummary();
  • * }
  • *
  • * //avec le gestionnaire d'erreur active
  • * set_error_handler("error_handler");
  • * try
  • * {
  • * $handle = fopen("fichier.txt");
  • * }
  • * catch (MyException $e)
  • * {
  • * echo $e->getSummary();
  • * }
  • * ?>
  • * </code>
  • *
  • * @author Gorrk
  • */
  • class MyException extends Exception
  • {
  • /**
  • * Niveau de l'erreur
  • *
  • * @var integer
  • */
  • protected $level = 0;
  • /**
  • * Code de l'erreur
  • *
  • * @var integer
  • */
  • protected $code = 0;
  • /**
  • * Description de l'erreur
  • *
  • * @var string
  • */
  • protected $message;
  • /**
  • * Fichier ou a eu lieu l'erreur
  • *
  • * @var string
  • */
  • protected $file;
  • /**
  • * Ligne ou a eu lieu l'erreur
  • *
  • * @var integer
  • */
  • protected $line;
  • /**
  • * Construit l'objet MyException
  • *
  • * @param string $message description de l'erreur
  • * @return void
  • */
  • public function __construct()
  • {
  • switch (func_num_args())
  • {
  • case 4 : parent::__construct(func_get_arg(1));
  • $this->level = (integer) func_get_arg(0);
  • $this->file = (string) func_get_arg(2);
  • $this->line = (integer) func_get_arg(3);
  • break;
  • case 2 : parent::__construct(func_get_arg(0));
  • $this->code = (integer) func_get_arg(1);
  • break;
  • case 1 : parent::__construct(func_get_arg(0));
  • }
  • }
  • /**
  • * Retourne le niveau de l'erreur
  • *
  • * @return integer
  • */
  • function getLevel()
  • {
  • return $this->level;
  • }
  • /**
  • * Retourne le niveau de l'erreur sous forme de chaine
  • *
  • * @return string
  • */
  • function getLevelAsString()
  • {
  • switch ($this->level)
  • {
  • case E_ERROR : return "E_ERROR";
  • case E_WARNING : return "E_WARNING";
  • case E_PARSE : return "E_PARSE";
  • case E_NOTICE : return "E_NOTICE";
  • case E_CORE_ERROR : return "E_CORE_ERROR";
  • case E_CORE_WARNING : return "E_CORE_WARNING";
  • case E_COMPILE_ERROR : return "E_COMPILE_ERROR";
  • case E_COMPILE_WARNING : return "E_COMPILE_WARNING";
  • case E_USER_ERROR : return "E_USER_ERROR";
  • case E_USER_WARNING : return "E_USER_WARNING";
  • case E_USER_NOTICE : return "E_USER_NOTICE";
  • case E_ALL : return "E_ALL";
  • case E_STRICT : return "E_STRICT";
  • }
  • }
  • /**
  • * Retourne un resume de l'erreur
  • *
  • * @return string
  • */
  • public function getSummary()
  • {
  • $string = "<br />\r\n";
  • $string .= "<strong>Attention</strong> : ".$this->message.".<br />\r\n";
  • $string .= "Dans le fichier <strong>".$this->file."</strong> &agrave; la ligne <strong>".$this->line."</strong>.<br />\r\n";
  • $string .= "<br />\r\n";
  • return $string;
  • }
  • }
  • /**
  • * Active MyException a chaque erreur
  • *
  • * @author Gorrk
  • * @return void
  • */
  • function error_handler($level, $message, $file, $line)
  • {
  • throw new MyException($level, $message, $file, $line);
  • }
  • /**
  • * Active le gestionnaire d'erreurs
  • */
  • set_error_handler("error_handler");
  • /**
  • * Affiche un message d'erreur a chaque Exception non rattrapee et arrete le script
  • *
  • * @author Gorrk
  • * @return void
  • */
  • function exception_handler($exception)
  • {
  • die($exception->getSummary());
  • }
  • /**
  • * Active le le gestionnaire d'exception
  • */
  • set_exception_handler("exception_handler");
  • ?>
<?php
/**
 * Classe d'exception
 * 
 * Cette classe complete legerement la classe d'exception de PHP,
 * elle peut egalement etre utiliser pour gerer (presque) toutes les erreurs
 * par l'intermediaire de la fonction error_handler().
 * 
 * <code>
 * <?php
 * try
 * {
 *     throw new MyException("Erreur de configuration");
 * }
 * catch (MyException $e)
 * {
 *     echo $e->getSummary();
 * }
 * 
 * //avec le gestionnaire d'erreur active
 * set_error_handler("error_handler");
 * try
 * {
 *     $handle = fopen("fichier.txt");
 * }
 * catch (MyException $e)
 * {
 *     echo $e->getSummary();
 * }
 * ?>
 * </code>
 * 
 * @author Gorrk
 */
class MyException extends Exception
{
   /**
    * Niveau de l'erreur
    * 
    * @var integer
    */
    protected $level = 0;

   /**
    * Code de l'erreur
    * 
    * @var integer
    */
    protected $code = 0;

   /**
    * Description de l'erreur
    * 
    * @var string
    */
    protected $message;

   /**
    * Fichier ou a eu lieu l'erreur
    * 
    * @var string
    */
    protected $file;

   /**
    * Ligne ou a eu lieu l'erreur
    * 
    * @var integer
    */
    protected $line;

    /**
     * Construit l'objet MyException
     * 
     * @param string $message description de l'erreur
     * @return void
     */
    public function __construct()
    {
        switch (func_num_args())
        {
            case 4 : parent::__construct(func_get_arg(1));
                     $this->level = (integer) func_get_arg(0);
                     $this->file  = (string) func_get_arg(2);
                     $this->line  = (integer) func_get_arg(3);
                     break;
            case 2 : parent::__construct(func_get_arg(0));
                     $this->code = (integer) func_get_arg(1);
                     break;
            case 1 : parent::__construct(func_get_arg(0));
        }
    }

    /**
     * Retourne le niveau de l'erreur
     * 
     * @return integer
     */
    function getLevel()
    {
        return $this->level;
    }

    /**
     * Retourne le niveau de l'erreur sous forme de chaine
     * 
     * @return string
     */
    function getLevelAsString()
    {
        switch ($this->level)
        {
            case E_ERROR           : return "E_ERROR";
            case E_WARNING         : return "E_WARNING";
            case E_PARSE           : return "E_PARSE";
            case E_NOTICE          : return "E_NOTICE";
            case E_CORE_ERROR      : return "E_CORE_ERROR";
            case E_CORE_WARNING    : return "E_CORE_WARNING";
            case E_COMPILE_ERROR   : return "E_COMPILE_ERROR";
            case E_COMPILE_WARNING : return "E_COMPILE_WARNING";
            case E_USER_ERROR      : return "E_USER_ERROR";
            case E_USER_WARNING    : return "E_USER_WARNING";
            case E_USER_NOTICE     : return "E_USER_NOTICE";
            case E_ALL             : return "E_ALL";
            case E_STRICT          : return "E_STRICT";
        }
    }

    /**
     * Retourne un resume de l'erreur
     * 
     * @return string
     */
    public function getSummary()
    {
        $string  = "<br />\r\n";
        $string .= "<strong>Attention</strong> : ".$this->message.".<br />\r\n";
        $string .= "Dans le fichier <strong>".$this->file."</strong> &agrave; la ligne <strong>".$this->line."</strong>.<br />\r\n";
        $string .= "<br />\r\n";
        return $string;
    }
}

/**
 * Active MyException a chaque erreur
 * 
 * @author Gorrk
 * @return void
 */
function error_handler($level, $message, $file, $line)
{
    throw new MyException($level, $message, $file, $line);
}

/**
 * Active le gestionnaire d'erreurs
 */
set_error_handler("error_handler");

/**
 * Affiche un message d'erreur a chaque Exception non rattrapee et arrete le script
 * 
 * @author Gorrk
 * @return void
 */
function exception_handler($exception)
{
    die($exception->getSummary());
}
/**
 * Active le le gestionnaire d'exception
 */
set_exception_handler("exception_handler");
?>


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

18 décembre 2004 19:29:39 :
Ajout du Zip.
19 décembre 2004 00:13:13 :
19 décembre 2004 15:42:39 :
Ajout du zip contenant la documentation
19 décembre 2004 15:44:44 :
19 décembre 2004 15:50:06 :
19 décembre 2004 18:35:30 :
Ajout d'un module qui gere les exceptions non rattrapées

 Sources du même auteur

DÉBUT DE CLASSE ABSTRAITE POUR UNE MEILLEUR GESTION DES PROP...
Source avec Zip CLASSE POUR CREER UN OBJET DYNAMIQUE PHP5
Source avec Zip FONCTION PRATIQUES POUR MANIPULER LES PARAMETRES HTTP
Source avec Zip CLASSE DE NEWS PHP5
Source avec Zip CLASSE MYSQL PHP5

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

Commentaires et avis

Commentaire de Gorrk le 18/12/2004 16:07:00

Désolé pour le Zip, mais g eu un probleme lors du postage de la source, et le zip n'est pas passer, je le mettrai plus tard, il ne vous manquera pas, tout est dans la source.

Commentaire de Gorrk le 19/12/2004 00:17:50

c bon pour le zip, il contient une documentation, enfin une documentation, c un grand mot...

:p lol

Commentaire de Antidote le 19/12/2004 14:00:49

La j'avoue que je suis perdu.

Depuis que j'ai trouvé un job de dévelloppeur en php je n'ai pas trop pu me mettre à jour sur php5.

Hors jusqu'à maintnenant j'étais pas mal callé dessus mais là, je suis perdu.

Try ? catch ? throw ? j'avais jamais vu ça.
J'ai chercher dans la doc je trouve rien la dessus. Ça m'intéresse plus qu'énormément. Si tu peux m'éclairer liens ou autres je prend.

J'avais dévelloper mon propre gestionnaire d'erreur, pour un site d'ecommerce.
Je met en garde ceux qui voudrais s'y mettre, Si votre gestionnaire d'erreur à lui meme un erreur, attention au boucle inifinie. Le miens m'envoyait un mail. J'ai été surpris de retrouve 5 000 mails dans ma boite après le premier test.

Commentaire de Gorrk le 19/12/2004 15:06:21

Ma source est inspiree d'un super site le principe des exceptions et le fonctionnements est très bien expliquer.

http://classes.scriptsphp.net:81/article.PHP-5-et-les-exceptions

Commentaire de Antidote le 19/12/2004 16:55:57

Merci pour le liens, très sympa !

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales