Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2007, 09h01   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
Par défaut gestionnaire d'erreur et fatal_error

Bonjour,
Je souhaite créer un gestionnaire d'erreur. Pour cela je definie une fonction error_handler que je passe ensuite en argument de la fonction set_error_handler
Ceci fonctionne quand j'utilise une constante non définie par exemple mais pas quand j'utilise une fonction non définie.
Y'a t-il un moyen de gérer les fatal error de ce type?
Merci par avance
beberem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 09h14   #2
Membre habitué
 
Inscription : décembre 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 181
Points : 140
Points : 140
bonjour je ne comprends pas des masses ta question, un exemple serait le bienvenue

mais as tu pensé as utiliser le "or die" ?
roduce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 09h32   #3
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
Exemple :
$old_error_handler = set_error_handler("error_handler", E_ALL);

// constante non définie, qui génère une alerte
$t = I_AM_NOT_DEFINED;

//erreur de type warning: division par 0
$toto = 4/0;

Ces deux erreurs sont bien gérés par le gestionnaire, j'ai les messages correspondant dans mon fichier.
Par contre si j'utilise la fonction tata() sans la définir le gestionnaire d'erreur n'est pas déclenché et le message "Fatal error: Call to undefined function tata() in ..." s'affiche à l'écran.
beberem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h03   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Vous ne pouvez pas intercepter les erreurs fatales :
Citation:
Envoyé par http://fr.php.net/set_error_handler
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é.
Or pour reprendre votre exemple, une fonction non définie déclenche une erreur de type E_ERROR ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h14   #5
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
Y'a t-il un moyen pour pouvoir stocker ce type d'erreurs dans un fichier de log ou dans une table?
beberem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h30   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ne retrouvez-vous pas toutes les erreurs dans le journal d'erreur du serveur ? Sinon intéressez-vous éventuellement à la directive error_log (php.ini).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 21h49   #7
Nouveau Membre du Club
 
Erick
Inscription : décembre 2007
Messages : 81
Détails du profil
Informations personnelles :
Nom : Erick
Âge : 27
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 81
Points : 32
Points : 32
Il y a aussi une petite variable sympa $php_errormsg qui est disponible lorsque la directive track_errors est mise à On tout simplement. À noter qu'il est inutile de préciser qu'en serveur de production Display_errors est beaucoup mieux d'être à Off
Chasseur d'étoiles est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h57.


 
 
 
 
Partenaires

Hébergement Web