Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 01/11/2011, 13h02   #1
Membre actif
 
Avatar de bigltnt
 
Inscription : mars 2007
Messages : 221
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 221
Points : 155
Points : 155
Par défaut [How to] Comment gérer efficacement les erreurs et les exceptions ?

Bonjour,

Comment gérez-vous vos exceptions et vos erreurs ?

Pour ma part :

- Je me débarrasse de la notion d'erreurs, en utilisant une fonction de callback appliquée à set_error_handler() qui va convertir l'erreur et la lancer comme une exception de type ErrorException. Je peux ainsi la "catcher"

- Je place une fonction de callback pour set_exception_handler(), qui réagira comme une erreur critique (message basique dans l'environnement système).

- Je fais un try/catch, là où l'erreur peut encore être traitée par le moteur d'affichage de mon application (message formaté dans l'environnement applicatif).

Par contre ce que je trouve étrange dans mes développements, c'est que je n'ai jamais réellement besoin de catcher une exception personnalisée (pourquoi devrais-je avoir besoin de traiter une erreur plus spécifiquement qu'une autre ?). Est-ce normal ? J'ai l'impression que cela reflète une mauvaise exploitation du concept des exceptions ...

Et vous, qu'en pensez-vous ? Comment faites-vous ?
bigltnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 16h29   #2
Candidat au titre de Membre du Club
 
Homme
Inscription : octobre 2007
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2007
Messages : 10
Points : 10
Points : 10
Citation:
Envoyé par bigltnt Voir le message
Bonjour,

- Je me débarrasse de la notion d'erreurs, en utilisant une fonction de callback appliquée à set_error_handler() qui va convertir l'erreur et la lancer comme une exception de type ErrorException. Je peux ainsi la "catcher"

- Je place une fonction de callback pour set_exception_handler(), qui réagira comme une erreur critique (message basique dans l'environnement système).

...

J'ai l'impression que cela reflète une mauvaise exploitation du concept des exceptions ...

Et vous, qu'en pensez-vous ? Comment faites-vous ?
Salut bigltnt,

J'ai l’impression (malheureusement ) que c'est ta dernière phrase qui est la plus juste dans ton post...

Déjà tu ne te "débarrasse pas des erreurs", y a celles-ci qui d'après la doc E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING qui sont pas concernées.

Je trouve que le fait de remplacer le gestionnaire d'erreur par une levée d'exception à tout va est totalement inappropriée dans la plupart des cas, exception() faite des environnements très contraignants (ne me dit pas que tu fais de l'embarqué avec php...).

Ensuite, la callback de set_exception_handler n'est exécutée qu'en cas d'exception levée qui n'a pas été catchée; Si tu redéfinit donc ce comportement par "une erreur critique" => Le cas typique qui apparait directement est une E_NOTICE qui est lancée en ErrorException et qui va réagir comme une erreur critique.

Et enfin comment je fais? c'est une autre histoire...
foberken 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 12h33.


 
 
 
 
Partenaires

Hébergement Web