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 :

Fatal error: Exception thrown without a stack frame in Unknown on line 0


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Fatal error: Exception thrown without a stack frame in Unknown on line 0
    Bonjour.

    Sur l'une des pages de mon site, j'obtiens cette erreur tout à la fin de la page générée :

    Fatal error: Exception thrown without a stack frame in Unknown on line 0

    Je me suis renseigné et cette erreur est provoquée lorsqu'on lance une exception dans un destructeur ou bien à l'intérieur du gestionnaire d'exceptions. Le problème, c'est que la page en question n'a que 2 instances de classes qui n'ont pas de destructeur. Je n'ai donc aucune idée d'où peut provenir l'erreur. Par ailleurs, à aucun moment je ne lance d'exceptions.

    Merci par avance.

  2. #2
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    As tu vu ce lien?
    ou encore celui là

    Si tu n'utilise pas le mécanisme des exceptions, peut être qu'une librairies que tu utilises le fait?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Oui j'avais vu ces liens. Cependant, comme je te l'ai dit, à aucun moment je ne lance d'exceptions. Parmi les 2 instances que j'ai, l'une est une instance d'une classe faite maison qui ne lance pas d'exceptions, et l'autre est une instance de MyPDO qui hérite de PDO. MyPDO n'a pas de destructeur et ne lance pas d'exceptions.

    Bref, je ne vois vraiment pas d'où ça peut venir dans la mesure où jamais je ne lance d'exceptions.

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Bref, je ne vois vraiment pas d'où ça peut venir dans la mesure où jamais je ne lance d'exceptions.
    Faudrait donc voir comment tu as construit ta classe MyPD dérivée de PDO, particulièrement du setAtrribute().

    PDO à sa propre gestion des exceptions : PDOException(), et selon le mode (ATTR_ERRMODE), ça lance ou pas des Exceptions en cas d'erreur.

    Faudrait mettre un peu de code.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Je ne savais pas quelle partie du code serait intéressante, ce qui explique que je n'ai rien posté. A la demande, voici ma classe MyPDO :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
        class MyPDO extends PDO
        {
            private static $instance;
     
            public function __construct()
            {
                if (!empty(self::$instance))
                    throw new Exception('MyPDO a déjà été instanciée');
     
                parent::__construct(config('DB_SGBDR').':host='.config('DB_HOST').';dbname='.config('DB_NAME'), config('DB_LOGIN'), config('DB_PASS'));
                self::$instance = $this;
            }
     
            public function getInstance()
            {
                if (empty(self::$instance))
                    new self;
     
                return self::$instance;
            }
     
            public function exec($query)
            {
                $retour = parent::exec($query);
     
                if ($retour === false)
                    exit('<pre>'.print_r($this->errorInfo(), true).'</pre>');
     
                return $retour;
            }
     
            public function query($query)
            {
                $retour = parent::query($query);
     
                if ($retour === false)
                    exit('<pre>'.print_r($this->errorInfo(), true).'</pre>');
     
                return $retour;
            }
        }
    Merci.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/06/2013, 17h28
  2. Exception thrown without a stack frame in Unknown
    Par sliderman dans le forum Zend_Db
    Réponses: 2
    Dernier message: 19/01/2012, 14h12
  3. Réponses: 4
    Dernier message: 16/08/2011, 13h19
  4. CXX0069: Error: variable needs stack frame
    Par stof dans le forum Visual C++
    Réponses: 7
    Dernier message: 22/07/2008, 17h41
  5. Réponses: 4
    Dernier message: 08/11/2007, 17h31

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