Question

D'après ma compréhension de la documentation PHP, la configuration d'un gestionnaire d'erreurs personnalisé (qui ne peut pas attraper toutes les erreurs) désactive le gestionnaire d'erreurs php par défaut (qui, je suppose, peut attraper toutes les erreurs :).

Si cela est correct, est-il utile de définir un gestionnaire d'erreurs personnalisé?Je garde toujours error_reporting (-1), donc je devrais quand même obtenir toutes les erreurs dans le journal des erreurs, non?

En ce qui concerne l'expérience utilisateur, je ne vois pas le but de rendre ces erreurs manifestes de manière personnalisée - pourquoi voudriez-vous que les utilisateurs les voient?En production, je désactive toujours display_errors.

Était-ce utile?

La solution

La définition d'un gestionnaire d'erreurs personnalisé sert à définir un gestionnaire fourre-tout qui prend en charge les erreurs qui ne sont pas gérées ailleurs.Il peut attraper toutes les erreurs, sauf celles où votre script n’est pas exécuté du tout (comme les erreurs de syntaxe fatales).

Je dois également souligner que si vous retournez false depuis votre fonction de gestion des erreurs, le gestionnaire d'erreurs PHP intégré interviendra.

Vous pouvez le souhaiter pour une journalisation spéciale de tout type d'exceptions spécifiques dans votre application.

Autres conseils

En production, vous voudrez probablement dire à l'utilisateur quelque chose lorsque votre site plante et set_error_handler fournit un moyen de rendre de jolis messages d'erreur tout en empêchant l'utilisateur de voir des choses laides comme le code et les numéros de ligne.Il détecte toutes les erreurs d'exécution détectées par le gestionnaire d'erreurs PHP normal.

Il n'y a aucune raison d'éviter d'utiliser set_error_handler, et il est certainement préférable de simplement n'afficher rien lorsqu'une erreur se produit.

Si cela est correct, est-il utile de définir un gestionnaire d'erreurs personnalisé?Je garde toujours error_reporting (-1), donc je devrais quand même obtenir toutes les erreurs dans le journal des erreurs, non?

error_reporting dicte les erreurs à signaler (par exemple, avertissement, avis, etc.).Cela n'a rien à voir avec leur affichage dans les journaux;si vous définissez error_reporting sur 0, il ne sera pas enregistré.Si vous souhaitez qu'il soit enregistré, mais pas affiché au client, utilisez display_errors= Off.

En ce qui concerne l'expérience utilisateur, je ne vois pas le but de rendre ces erreurs manifestes de manière personnalisée - pourquoi voudriez-vous que les utilisateurs les voient?En production, je désactive toujours display_errors.

Je voudrais voir un message indiquant que "quelque chose" s'est mal passé, plutôt que de voir un "écran blanc de la mort".Cela peut être simple à faire avec un gestionnaire d'erreurs personnalisé.Alors oui, ça a un but.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top