2010-06-08 4 views
0

Je travaille actuellement sur une application qui nécessite beaucoup de bibliothèques externes. Mon travail en ce moment est de définir un gestionnaire d'erreur unique qui permettra de gérer toutes les erreurs.Surcharger le gestionnaire d'erreur PEAR

Jusqu'à présent, je trouve 7 différents types d'erreurs PEAR:

  • PEAR_ERROR_RETURN:
  • PEAR_ERROR_EXCEPTION:
  • PEAR_ERROR_CALLBACK:
  • PEAR_ERROR_PRINT:
  • PEAR_ERROR_TRIGGER:
  • PEAR_ERROR_DIE:

Je veux gérer seulement l'erreur sérieuse (comme l'E * _ERROR natif). Le seul problème est que je n'ai absolument aucune idée de la criticité de l'erreur PEAR! Ces noms sont plus liés à la façon de les manipuler qu'à leur gravité ... Y a-t-il une vraie documentation à ce sujet?

je suppose une meilleure solution consisterait à utiliser leur pushErrorHandling, mais je ne comprends pas comment l'utiliser ... Si quelqu'un sait ici, je serais reconnaissant ...

Merci à l'avance !

Répondre

0

De votre question, il semble que vous vouliez une seule fonction pour gérer tous les avertissements, les erreurs et les exceptions.

Pour E_ERROR, je pense que vous n'avez pas de chance. Cela indique une erreur d'exécution fatale que PHP ne peut pas récupérer, donc votre script est voué à l'échec.

Avec des exceptions, vous pouvez effectuer un set_exception_handler("funcName"); pour gérer toutes les exceptions non interceptées dans l'exécution de votre programme. Cependant, ceci devrait être un dernier recours absolu pour la gestion des exceptions. Un filet de sécurité, si vous voulez, pour tout ce qui glisse entre les mailles du filet. La raison de ceci (et pour traiter toute erreur globalement comme ceci) est que vous n'avez aucun moyen de récupérer de l'exception puisque set_exception_handler ne renvoie pas de valeur et il a quand même quitté la pile du programme.

Utilisez try/catch généreusement dans votre application. Cela peut sembler fastidieux, ou une perte de temps, mais la vérité est que votre programme échouera à un moment donné. C'est inévitable, peu importe à quel point vous êtes un programmeur. L'utilisation appropriée de la gestion des exceptions permettra à votre application de se fermer avec élégance, ou même de récupérer correctement à partir d'une exception.

+0

Salut et merci pour votre réponse, en effet, je dois réussir à centraliser l'erreur/gestion des exceptions ... Je suis bien conscient exception est la solution la plus appropriée, mais je ne peux tout simplement changer tout code externe qui repose sur l'ancienne erreur manipulation (comme la version de poire que j'ai) ... – Rolf