Aller au contenu

Sujets conseillés

Posté

bonjour



Débutant en gestion des erreurs en Php, je travaille sur la présentation des erreurs, normale sur mon site de test, aucune sur mon site de production.



Comme je suis en hébergement mutualisé, je ne peux pas modifier le php.ini pour permettre / interdire la présentation des erreurs.



Pour l'interdire une solution consiste à ajouter un ordre error_reporting(0); ma question: faut-il ajouter cet ordre dans chaque page concernée.



Une autre solution, je crois, consiste à ajouter une directive php_value display_errors off dans mon fichier Htaccess; ça me créerait une contrainte car mon Htaccess est jusqu'ici identique en test et en prod.



Quelle solution préférer? Merci par avance de votre aide.



Francois


  • 2 semaines plus tard...
Posté

Bonjour,

Je vais parler uniquement au niveau des exceptions

J'utilise le try/catch et j'en suis assez content.

Par exemple, dans une classe, je fais ceci :

class Calcule{    public function DiviseParZero($value){        try{            return $value/0;        }catch(Exception $e){            //Soit je relève l'exception pour ma couche appelante (IHM), soit je la log, soit les deux            throw $e;            //Ou je logue et je la lève            Tools::LogError($e);            throw $e;        }    }}


Et dans mon IHM :

try{    $c = new Calcule();    $r = $c->DiviseParZero(1);}catch(Exception $e){    $message = "Une erreur est survenue : " . $e->getMessage();}

Une Fatale Error ne doit (normalement) jamais se produire en production. Sauf mauvaise livraison ou autre.

Si tu veux les intercepter, il te faudra Php 5.2+ :

http://stackoverflow.com/questions/277224/how-do-i-catch-a-php-fatal-error

Portekoi


Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...