|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 5 ![]() |
Bonjour, voilà j'ai un petit problème avec des exceptions assez bizarre.
J'ai fais une classe doc_exception qui récupèrera certaines erreurs pour les ajouter à mon objet doc. Il y a 2 types d'erreurs : 'warning' et 'error'. 'error' stoppera l'exécution de tout ce qui se trouve dans le premier try catch. Le programme fonctionne de la manière suivante : Je récupère un XML récupère des informations principales puis utilise (dépendant celle-ci) une classe. Cette partie se trouve dans entouré d'un try catch qui va récupérer mon erreur. A l'intérieur de chaque classes, j'ai placé plusieurs try catch. Ils fonctionnent de la manière suivante : Si une erreur est levé, un test est fait dans le catch , si c'est un 'error', l'erreur est à nouveau levé pour etre récupéré et renvoyé jusqu'au tout premier try catch. Le problème que je rencontre me semble étrange (il fonctionne parfaitement en local, mais une fois sur le serveur, un problème apparait). Code :
En local, c'est ce qu'il se passe, tout fonctionne parfaitement. Mais sur le serveur où il est prévu de fonctionner. le dernier catch est seulement ignoré et est donc récupéré par le catch au niveau supèrieur, qui est le tout premier. Je ne vois pas pourquoi il ne fonctionne pas :s |
||
|
|
00
|
|
|
#2 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Salut,
J'avoue que j'ai eu la flemme de décortiquer ton code, trop fatigué après une journée de taff. Mais il faut aussi envisager une possibilité : le dernier catch est effectivement éxécuté, mais provoque lui-même une exception, qui est alors propagée et interceptée dans le bloc parent. Un petit placé dans le bloc que tu supposes ne pas passer pourra te le confirmer. Si tu as quelquechose qui s'affiche, alors y a un blème dans ton bloc catch... |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 5 ![]() |
Hmmm rien ne s'affiche en local et sur le serveur, bizarre.
à moins que je me serve mal de cette fonction? j'ai fait ça : $this->addDebug(var_dump($e)); Mais rien ne s'affiche. Le catch est bien exécuté en localhost, mais ignoré sur le serveur. Est ce que vous auriez une idée, de qu'est ce qui pourrait faire fonctionner différement les exceptions/try/catch d'un serveur à un autre? |
|
|
00
|
|
|
#4 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Var_dump tout seul suffira.
Ca va te faire une sortie très laide sur le navif=gateur, mais très pratique en code source. Je t'invite à aller voir la définition e cette fonction extrêmement pratique pour debugger. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 5 ![]() |
Var_dump a pas l'air de vouloir afficher quelque ce soit, peut-être en raison de la présence de ob_start();...appel de mes fonctions...$debug_string = ob_get_contents();ob_clean();
J'ai essayé un $this->addDebug(print_r($e,true)); En local, je reçoit bien tout l'array représentant l'objet exception. Sur le serveur, rien n'est affiché. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 5 ![]() |
J'ai essayé sur un autre pc en localhost, tout fonctionne ..
Donc le serveur a un problème -_- |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 5 ![]() |
-_-
Problème Résolu : eAccelerator faisait tout planter ( ça je sais pas pourquoi <_<; ) Donc une fois désactivé, tout fonctionne correctement. ( et dire que j'ai passé 2 jours à voir et modifier mes try catch et tout )
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com