|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : juillet 2003 Messages : 166 ![]() |
Hello,
(c'est pour la suite de ma discutions de hier) j'ai remarqué que s'il y a une erreur de syntaxe (genre ";" qui manque, pas une erreur à l'exécution) le script s'arrête net. que l'on mette include à la place de require ne change rien que l'on mette dans un try include... catch ne fait rien non plus apparament si je met @include() pareil, ça n'affiche plus d'erreur mais le script se bloque ya til une solution pour ignorer le fichier à la place alors ? ou bien un moyen de tester une erreur de syntaxe dans un fichier php avant de l'include ? merci
__________________
Chasseur de bug en activité L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur |
|
|
00
|
|
|
#2 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Salut,
Une erreur de syntaxe, c'est potentiellement grave. Il est donc normal que cela crashe le script. Tu peux éventuellement gérer tout ça avec des exceptions, mais sur une erreur de syntaxe, je pense qu'il faut se casser la gueule et corriger la faute. Un peu de rigueur ne fait pas de mal. |
|
|
00
|
|
|
#3 | |
|
Membre du Club
![]() Inscription : juillet 2003 Messages : 166 ![]() |
Citation:
Après ce n'est pas forcément une affaire de rigeur une faute de frappe ça peut arriver, et ce serait regrettable que une page soit plantée à cause de l'affichage d'un petit bloc de 30*30 pixel qui est censé afficher la dernière photo ou un truc comme ça. Un include d'un fichier source / d'une librairie -> oui ça plante c'est normal Un include d'un mini bloc sur une page (ex qui affiche juste la date), on peut s'en passer et afficher un petit bloc blanc. ça peut servir de rattraper un include
__________________
Chasseur de bug en activité L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur |
|
|
|
00
|
|
|
#4 |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 686 ![]() |
Non, si ça crashe, c'est que l'erreur est suffisamment importante pour planter le script. Sinon, tu n'aurais qu'un warning ou une notice.
L'interpréteur ne fait la différence entre un ; manquant dans une série d'echo qui servent à afficher tes mensurations en tous petits caractères dans un coin de ta page perso et un ; manquant dans le script assurant la sécurité du transfert d'argent pendant le virement que tu fais pour payer ton loyer. C'est pas intelligent un ordi, ça fait exactement ce qu'on lui demande. Et pour lui c'est : Un ; manquant = je ne comprends pas la ligne suivante = une erreur = on arrête tout Pour autant que je me rappelle jusqu'à php 4 et quelques, l'include qui plantait n'arrêtait pas forcément le script appelant, mais les dernières versions de php ont corrigé ça, donc il doit y avoir une raison
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : juillet 2003 Messages : 166 ![]() |
je suis 100% d'accord avec ce que tu marques et n'ai jamais dit le contraire...
Je demandais juste si il y avait une sorte d'équivalent à un "include", qui fasse "return false" au lieu d'un "die" pour gérer justement à la main une erreur éventuelle sur des scripts peu importants.
__________________
Chasseur de bug en activité L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur |
|
|
00
|
|
|
#6 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Il faut que tu regardes ces deux fonctions : set_error_handler() et set_exception_handler()
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com