IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

set_error_handler ne fonctionne pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut set_error_handler ne fonctionne pas
    Bonjour,

    Avec php5, j'essaie de faire une gestion d'erreur personnalisée.
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    //test de log erreurs
      error_reporting(0);
     
      function userErrorHandler()
      {
        die('ça plante');
      }
     
      set_error_handler("userErrorHandler");
     
      echo 'bof'
      echo 'buf'
     
    ?>
    Mais j'obtiens tout de même ceci le message d'erreur php au lieu de mon 'ça plante' :
    Parse error: syntax error, unexpected T_ECHO, expecting ',' ...
    Avez vous une idée du problème ?
    Merci de votre aide.

  2. #2
    Membre chevronné Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Par défaut
    T'es pas en python ou ruby, il faut mettre un point-virgule à la fin de la ligne. Au niveau des echo

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut
    Oui, bien sûr, mais l'erreur est volontaire pour tester ma propre gestion des erreurs avec set_error_handler.
    C'est avec la gestion des erreurs que j'ai le problème, car l'erreur provoqué par les points-virgules manquants me retourne l'erreur php et non mon propre message.

  4. #4
    Membre chevronné Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Par défaut
    Désoler, je suis vraiment à coter de la plaque ces deux dernier jours . En fait ta fonction ne gère pas ce type d'erreur... Si j'essai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
        function userErrorHandler($errno, $errstr, $errfile, $errline)
        {
            die("<b>Erreur:</b> [$errno] $errstr<br />" .
                 " Erreur à la ligne $errline dans le fichier $errfile<br />");
        }
     
        set_error_handler("userErrorHandler");
     
        $teste = 2;
     
        if ($teste > 1) {
            trigger_error('ça plante');
        }
    ?>
    Ca fonctionne.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Comme le précise la documentation, toutes les erreurs ne peuvent pas être interceptées (toutes celles qui sont fatales en fait restent à la charge de PHP) :
    Les types d'erreur suivants ne peuvent pas être gérés avec cette fonction : E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING ainsi que la plupart des E_STRICT d'un fichier lorsque set_error_handler() est appelé.

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut
    Aïe, pas de solution pour gérer les erreurs ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 12h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 02/11/2003, 00h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 11h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 17h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 01h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo